7.2. º¯¼ö¿Í ¸Þ½îµå
(¾´ ³¯ : 2001-06-27)
¾È³çÇϼ¼¿ä~
Á¤~¸» Á¤~¸»
¹Ý°¡¿ö¿ä~
¹ú½á Áö³ °Á¸¦ ¿Ã¸° Áö ¿ÈêÀÌ Áö³ª¹ö·È³×¿ä.
ÀÌ·±Àú·± ÀϵéÀÌ »ý±â´Â ¹Ù¶÷¿¡¡¦ ¸¹ÀÌ ±â´Ù¸®½Ã°Ô ÇØ¼ Á˼ۡ¦
Áö³ ½Ã°£¿¡ Ŭ·¡½º¿Í °´Ã¼°¡ ¹«¾ùÀÎÁö Àá±ñ
»ìÆìº¸¾ÒÁÒ?
½ÇÁ¦ ¼¼°è¿¡ Á¸ÀçÇÏ´Â ½Çü(instance)¸¦ °´Ã¼(object)¶ó°í Çϰí, °´Ã¼µéÀÇ °øÅëÁ¡À» °£Ãß·Á¼ °³³äÀûÀ¸·Î ³ªÅ¸³½ °ÍÀÌ Å¬·¡½º(class)¶ó°í
Çß½À´Ï´Ù.
¾î¶² Ŭ·¡½º¸¦ ¸¸µå·Á¸é ±× °´Ã¼°¡ °®´Â
¼ºÁú°ú ±× °´Ã¼°¡ ÇÏ´Â ÇൿÀ» Á¤ÀÇÇØÁÖ¸é µÈ´Ù°íµµ Çß±¸¿ä.
¿äÁò ¸¹ÀÌ ÇϽô µð¾Æºí·ÎII °ÔÀÓÀÇ ¾Æ¸¶Á¸À̶õ ij¸¯Å͸¦ Ŭ·¡½º·Î Ç¥ÇöÇØ º¼±î¿ä?
|
class Amazon: str = 20 # Èû dex = 25 # ±â¼ú vit = 20 # ü·Â eng = 15 # ¿¡³ÊÁö def attack(self): # °ø°ÝÇÏ´Ù return
'Jab!!!' |
¾Æ¸¶Á¸ Ŭ·¡½º°¡ °®°í ÀÖ´Â ¡®Èû¡¯, ¡®±â¼ú¡¯, ¡®Ã¼·Â¡¯, ¡®¿¡³ÊÁö¡¯¶ó´Â ³× °¡Áö ¼ºÁúÀº º¯¼ö·Î ³ªÅ¸³»¾ú±¸¿ä, ¡®°ø°ÝÇÏ´Ù¡¯¶ó´Â ÇൿÀº
¸Þ½îµå·Î ³ªÅ¸³»¾ú½À´Ï´Ù.
Àü¿¡ °øºÎÇß´ø ¸ðµâµµ º¹½ÀÇÒ °â ¸Þ¸ðÀåÀ¸·Î
ÀÛ¼ºÇϼż diablo.py¶ó´Â ÆÄÀÏ·Î ÀúÀåÇØÁÖ¼¼¿ä.
ÀÌÁ¦ ¾Æ·¡¿Í °°ÀÌ diablo ¸ðµâÀ» ºÒ·¯µéÀÎ ´ÙÀ½¿¡,
|
>>>
import sys >>>
sys.path.append('c:/python21/exam') >>>
import diablo |
Amazon Ŭ·¡½ºÀÇ
°´Ã¼¸¦ ¸¸µé¾î º¾½Ã´Ù.
|
>>> jane
= diablo.Amazon() >>> mary
= diablo.Amazon() |
µÎ ¸íÀÇ ¿©Àü»ç°¡ ź»ýÇß½À´Ï´Ù. Â¥ÀÜ~
jane°ú mary´Â
µÑ ´Ù AmazonÀ¸·Î¼ ÇÊ¿äÇÑ ÀÚÁúÀ» ¸ðµÎ °®Ãß°í ÀÖ°ÚÁÒ?
±×·¸´Ù¸é janeÀÇ Èûµµ, °ø°ÝÇÏ´Â Çൿµµ Amazon Ŭ·¡½º¿¡¼ Á¤ÀÇÇÑ ±×´ë·ÎÀ̰ڱ¸¿ä.
|
>>> jane.str 20 >>> jane.attack() 'Jab!!!' |
ÀÌ·¸°Ô °´Ã¼´Â Ŭ·¡½º¿¡¼ Á¤ÀÇÇØÁØ º¯¼ö¿Í ¸Þ½îµå¸¦ ±×´ë·Î °®°Ô µË´Ï´Ù.
º°·Î ¾î·ÆÁö ¾ÊÁÒ?
¿©±â¼ ÁÖÀÇÇØ¼ º¸½Ç °ÍÀº ¸Þ½îµå¸¦ Á¤ÀÇÇÒ ¶§¿Í »ç¿ëÇÒ ¶§´Â Â÷À̰¡ ÀÖ´Ù´Â Á¡ÀÔ´Ï´Ù.
Amazon Ŭ·¡½º¿¡¼ ¸Þ½îµå¸¦ Á¤ÀÇÇÒ ¶§´Â def attack(self):¿Í °°ÀÌ self¶ó´Â ÀÎÀÚ¸¦ ¹Þ¾Ò´Âµ¥, jane °´Ã¼ÀÇ ¸Þ½îµå¸¦ È£ÃâÇÒ ¶§´Â ±×³É attack()À̶ó°í ÇßÁö¿ä?
self¶ó´Â °ÍÀº ¹Ù·Î ±× Ŭ·¡½ºÀÇ °´Ã¼¸¦ °¡¸®Å°´Âµ¥, jane°ú mary°¡ ¶È °°Àº attack ¸Þ½îµå¸¦ °¡Áö±â ¶§¹®¿¡ ¼·Î ±¸º°Çϱâ À§Çؼ »ç¿ëÇÑ °ÍÀÔ´Ï´Ù.
ÇÑ ¸¶µð·Î ¸Þ½îµå¸¦ Á¤ÀÇÇÒ ¶§´Â Ç×»ó self¶ó´Â ÀÎÀÚ¸¦ ½áÁØ´Ù°í »ý°¢ÇÏ½Ã¸é µÇ°Ú³×¿ä.
self¸¦ ¾î¶»°Ô »ç¿ëÇÏ´ÂÁö Á» ´õ »ìÆìº¸±â À§ÇØ Amazon Ŭ·¡½º¿¡ ¸Þ½îµå¸¦ Ãß°¡ÇØ º¾½Ã´Ù.
|
def
exercise(self): #ÈÆ·ÃÇÏ´Ù self.str += 2 self.dex += 3 self.vit += 1 |
ÀÌ ¸Þ½îµå´Â ÈÆ·ÃÀ» Çϸé Èû, ±â¼ú, ü·ÂÀÌ ¿Ã¶ó°¡´Â °ÍÀ» Ç¥ÇöÇßÁö¿ä.
¸Þ¸ðÀå¿¡¼ diablo.py ÆÄÀÏÀÇ Amazon Ŭ·¡½º¿¡ ÀÌ ¸Þ½îµå¸¦ Ãß°¡Çϰí ÀúÀåÇØÁֽñ⠹ٶø´Ï´Ù.
ÀúÀåÇϼÌÀ¸¸é º¯°æµÈ diablo ¸ðµâÀ» ÀçÀûÀç(reload)ÇÏ°í »õ·Î¿î °´Ã¼¸¦
¸¸µé¾î¼ ÈÆ·ÃÀ» ½ÃÄѺ¸¼¼¿ä.
|
>>>
reload(diablo) <module
'diablo' from 'c:/python21/exam\diablo.py'> >>> eve
= diablo.Amazon() >>>
eve.exercise() >>>
eve.str 22 |
Èû(str)ÀÌ
¼¼Á³³×¿ä. ÈÆ·ÃÇÑ º¸¶÷ÀÌ ÀÖÁö¿ä?