(¾´ ³¯ : 2001-07-08)
Áñ°Å¿î ÈÞÀÏÀÌ¿¡¿ä~
¿À´ÃÀº ¸ðó·³ Çб³¿¡¼ °øºÎ¸¦ Çß´ä´Ï´Ù.
»õ·Î »ê ³ëÆ®ºÏµµ óÀ½À¸·Î °®°í ³ª¿ÔÁö¿ä. ÀÌ·² ¶§ Âü ÁÁ´õ±º¿ä. ÈåÈåÈ塦
¿äÁò °Ô½ÃÆÇ¿¡ ¿Ã·ÁÁֽô ±ÛµéÀ» º¸°í Á¦°¡
¹Ìó ¸ô¶ú´ø ºÎºÐÀ» ¸¹ÀÌ ¹è¿ì°í ÀÖ´ä´Ï´Ù.
Âü °í¸¿±âµµ Çϰí, ÇÑÆíÀ¸·Î´Â ºÎÁ·ÇÑ ½Ç·Â¿¡ °Á¸¦ ¾´´Ù´Â °ÍÀÌ ºÎ²ô·´±âµµ Çϳ׿ä.
¾ÕÀ¸·Îµµ ¸¹ÀÌ ¿Ã·ÁÁÖ¼¼¿ä. ¾Æ¹«¸® ½¬¿î Áú¹®À̳ª °£´ÜÇÑ ¿¹Á¦¶óµµ ´ëȯ¿µÀÔ´Ï´Ù.
³ëÆ®ºÏÀ» ¾²°í ÀÖÀ¸´Ï ¹Ì¼Ç ÀӯļºíÀÇ ÁÖÀΰøÀÌ
µÈ µí Çϱº¿ä. ÈìÈ졦
¿À´ÃÀº °´Ã¼ ¼Ó¿¡ °´Ã¼¸¦ Áý¾î³Ö´Â ÀÓ¹«¸¦
¼öÇàÇϵµ·Ï ÇϰڽÀ´Ï´Ù.
ÄÚ³¢¸®¸¦ ³ÃÀå°í¿¡ ³Ö´Â ¹æ¹ýÀ» ¾Æ½Ã³ª¿ä?
¾Æ¸¶ ¸ð¸£½Ã´Â ºÐÀÌ ¾ø°ÚÁÒ? Á¦°¡ ¾Æ´Â À¯¸Ó´Â ¿Â ±¹¹ÎÀÌ ´Ù ¾Ë°í °è½Ã´Ï±î¿ä.
1¹ø, ³ÃÀå°í ¹®À»
¿¬´Ù.
2¹ø, ÄÚ³¢¸®¸¦ ³Ö´Â´Ù.
3¹ø, ³ÃÀå°í ¹®À»
´Ý´Â´Ù. ^^;
À̰ɷΠÇÁ·Î±×·¥À» Çѹø Â¥º¼±î¿ä?
|
# fridge.py class Fridge: isOpened = 0 foods = [] def open(self): self.isOpened = 1 print '³ÃÀå°í ¹®À» ¿¾ú¾î¿ä...' def put(self, thing): if self.isOpened:
self.foods.append(thing)
print '³ÃÀå°í ¼Ó¿¡ À½½ÄÀÌ µé¾î°¬³×...' else:
print '³ÃÀå°í ¹®ÀÌ ´ÝÇôÀÖ¾î¼ ¸ø³Ö°Ú¾î¿ä...' def close(self): self.isOpened = 0 print '³ÃÀå°í ¹®À» ´Ý¾Ò¾î¿ä...' class Food: pass |
À§¿Í °°ÀÌ ³ÃÀå°í¿Í À½½Ä Ŭ·¡½º¸¦ °®°í
ÀÖ´Â fridge.py ¸ðµâÀ» ¸¸µé¾îº¸¾Ò½À´Ï´Ù.
³ÃÀå°í Ŭ·¡½º¿¡´Â ¹®ÀÌ ¿·ÁÀÖ´ÂÁö¸¦ ³ªÅ¸³»´Â isOpened¶ó´Â º¯¼ö¿Í ³ÃÀå°í ¾È¿¡ µé¾îÀÖ´Â À½½ÄµéÀÇ ¸®½ºÆ®ÀÎ foods°¡ ÀÖ½À´Ï´Ù.
¶Ç, ³ÃÀå°í
¹®À» ¿°í, À½½ÄÀ» Áý¾î³Ö°í, ¹®À» ´Ý´Â ¸Þ½îµåµµ °¢°¢ °®°í ÀÖÁö¿ä.
À½½Ä¿¡ ´ëÇØ¼´Â º°·Î ¾µ ¸»ÀÌ ¾ø´õ±º¿ä.
¾µ °ÍÀÌ ¾øÀ» ¶§´Â pass¶ó°í¸¸ ½áÁÖ¸é µÈ´Ù°í ÇØ¼ ±×·¸°Ô Çß½À´Ï´Ù.
¼ÓÀÌ ºó À½½Ä Ŭ·¡½º¸¦ ¸¸µç °ÅÁö¿ä.
ÀÌÁ¦ ÀÎÅÍÇÁ¸®Å͸¦ ¶ç¿ö¼ ³ÃÀå°í¿¡´Ù°¡ ÄÚ³¢¸®¸¦
Áý¾î³Ö¾î º¾½Ã´Ù.
|
>>> import fridge >>> f = fridge.Fridge() >>> apple = fridge.Food() >>> elephant = fridge.Food() |
¸ÕÀú ³ÃÀå°í Ŭ·¡½ºÀÇ °´Ã¼·Î f¶ó´Â °ÍÀ» ¸¸µé°í À½½Ä Ŭ·¡½ºÀÇ °´Ã¼´Â apple°ú elephant¸¦ ¸¸µé¾ú½À´Ï´Ù.
|
>>> f.open() ³ÃÀå°í ¹®À» ¿¾ú¾î¿ä... >>> f.put(apple) ³ÃÀå°í ¼Ó¿¡ À½½ÄÀÌ
µé¾î°¬³×... |
³ÃÀå°í ¹®À» ¿°í, ÀÏ´Ü Áغñ¿îµ¿À¸·Î ³ÃÀå°í¿¡ »ç°ú¸¦ ³Ö¾îºÃ´Âµ¥ Àß µé¾î°¬Áö¿ä?
±×·³ ÄÚ³¢¸®µµ ³Ö¾îº¼±î¿ä?
|
>>> f.put(elephant) ³ÃÀå°í ¼Ó¿¡ À½½ÄÀÌ
µé¾î°¬³×... |
ÄÚ³¢¸®µµ ½ï µé¾î°¬½À´Ï´Ù~
³ÃÀå°í ¼Ó¿¡ »ç°ú¶û ÄÚ³¢¸®°¡ Àß µé¾î°¬´ÂÁö
È®ÀÎÇØº¼±î¿ä?
³ÃÀå°í fÀÇ
foods ¸®½ºÆ®¿¡ ¹¹°¡ µé¾îÀÖ´ÂÁö º¾½Ã´Ù.
|
>>> f.foods [<fridge.Food instance at 007924AC>, <fridge.Food instance at
0079153C>] |
Food Ŭ·¡½ºÀÇ ÀνºÅϽº(instance,
½Çü) µÎ °³°¡ µé¾îÀÖ´Ù°í ³ª¿À´Â±º¿ä.
½Çü³ª °´Ã¼³ª ºñ½ÁÇÑ ¸»À̰ÚÁÒ?
ÀÚ, ³ÃÀå°í
°´Ã¼´Â foods¶ó´Â ¸®½ºÆ®¸¦ °®°í ÀÖ±¸¿ä, foods ¸®½ºÆ®´Â À½½Ä Ŭ·¡½ºÀÇ »ç°ú¿Í ÄÚ³¢¸® °´Ã¼¸¦ °®°í ÀÖ½À´Ï´Ù.
°á±¹ ³ÃÀå°í °´Ã¼´Â ´Ù¸¥ °´Ã¼µéÀ» °®°í
ÀÖ´Ù°íµµ ÇÒ ¼ö ÀÖ°ÚÁÒ?
¿À´Ã º¸½Å °Íó·³ °´Ã¼´Â ¶Ç ´Ù¸¥ °´Ã¼¸¦
Æ÷ÇÔÇÒ ¼öµµ ÀÖ´ä´Ï´Ù.
°´Ã¼ÁöÇâ ÇÁ·Î±×·¡¹Ö¿¡¼´Â ÀÌ·± °ÍÀ» composition(ÇÕ¼º, º¹ÇÕ)À̶ó°í Çϱ¸¿ä, ¡°has-a¡± °ü°è¶ó°íµµ ÇÕ´Ï´Ù.
¡°f´Â
elephant¸¦ °®°í ÀÖ´Ù(f has an elephant).¡± ¸» µÇÁÒ?
º°·Î ¾î·ÆÁö´Â ¾ÊÁö¸¸ Àß ½á¸ÔÀ» ¼ö ÀÖ´Â
°³³äÀ̴ϱî ÀÍÇôµÎ¼¼¿ä.
ÀÌ·¸°ÔÇØ¼ ¿À´ÃÀÇ ÀÓ¹«ÀÎ °´Ã¼ ¼Ó¿¡ °´Ã¼
Áý¾î³Ö±â´Â ÈǸ¢ÇÏ°Ô ¿Ï¼öÇß±º¿ä.
Âü°í·Î ¡°has-a¡±°ü°è¸¦ ³ªÅ¸³½ ±×¸²À» º¸¿©µå¸®¸é¼ ¸¶Ä¡µµ·Ï ÇϰڽÀ´Ï´Ù.
Fridge Ŭ·¡½ºÀÇ
°´Ã¼´Â Food Ŭ·¡½ºÀÇ °´Ã¼(elephant µî¡¦)¸¦ ¿©·¯ °³(*) °¡Áú ¼ö ÀÖ´Ù´Â °ÍÀ» ¿¬°á¼± À§¾Æ·¡¿¡ *¿Í elephant¶ó°í ½áÁ༠³ªÅ¸³½
°ÍÀÌÁö¿ä.

´Ùµé ¼ö°íÇϼ̽À´Ï´Ù~