class User:
def __init__(self, name, email, password):
self.name = name
self.email = email
self.password = password
@classmethod
def from_string(cls, string_params):
# ¹®ÀÚ¿¿¡¼ Á¤º¸¸¦ ÃßÃâÇؼ User ÀνºÅϽº »ý¼º
name, email, password = string_params.split(',')
return cls(name, email, password)
@classmethod
def from_list(cls, list_params):
# ¸®½ºÆ®¿¡¼ Á¤º¸¸¦ ÃßÃâÇؼ User ÀνºÅϽº »ý¼º
name, email, password = list_params
return cls(name, email, password)
# À¯Àú »ý¼º ¹× ÃʱⰪ ¼³Á¤
younghoon = User.from_string("°¿µÈÆ,[email protected],123456")
yoonsoo = User.from_list(["ÀÌÀ±¼ö", "[email protected]", "abcdef"])
print(younghoon.name, younghoon.email, younghoon.password)
print(yoonsoo.name, yoonsoo.email, yoonsoo.password)
ÀÚ±â¼Ò°³°¡ ¾ø½À´Ï´Ù.
ù ¹ø° Áú¹®ÀÇ Á¤´ä:
1¹ø: ÀνºÅϽº º¯¼ö´Â __init__
¸Þ¼Òµå¿¡¼ ¼³Á¤ÇØÁÖ´Â °ÍÀÌ ÁÁ´Ù. -> ¿ÇÀº ³»¿ëÀÔ´Ï´Ù.
µÎ ¹ø° Áú¹®ÀÇ Á¤´ä:
5¹ø: Ư¼ö ¸Þ¼ÒµåµéÀº ÆÄÀ̽㿡¼ ¹Ì¸® ÁöÁ¤ÇÑ Æ¯Á¤ »óȲ¿¡ ÀÚµ¿À¸·Î È£ÃâµÇ´Â ¸Þ¼ÒµåÀÌ´Ù. -> ÀÌ ¼³¸íÀº ¿Ã¹Ù¸£´Ù. À߸øµÈ ³»¿ëÀ» °í¸£¶ó°í ÇßÀ¸¹Ç·Î Á¤´äÀÌ ¾Æ´Ô.
¼¼ ¹ø° Áú¹®ÀÇ Á¤´ä:
4¹ø: user1.number_of_users(User) -> ¿¡·¯¸¦ ÀÏÀ¸Å°´Â ÄÚµåÀÔ´Ï´Ù. Ŭ·¡½º ¸Þ¼Òµå´Â Ŭ·¡½º À̸§À» ÅëÇØ Á÷Á¢ Á¢±ÙÇϰųª ÀνºÅϽº¸¦ ÅëÇؼ Á¢±ÙÇÒ ¶§ º°µµÀÇ ÆĶó¹ÌÅÍ ¾øÀÌ »ç¿ëµË´Ï´Ù.
5
ÆÄÀ̽㿡¼ ¸®½ºÆ®´Â º¯°æ °¡´ÉÇÑ °´Ã¼(mutable object)À̱⠶§¹®ÀÔ´Ï´Ù. ÇÔ¼ö¿¡ ¸®½ºÆ®¸¦ ÀÎÀÚ·Î Àü´ÞÇÒ ¶§, ½ÇÁ¦ ¸®½ºÆ®ÀÇ ¸Þ¸ð¸® ÁÖ¼Ò¸¦ Àü´ÞÇϱ⠶§¹®¿¡, ÇÔ¼ö ³»¿¡¼ ¸®½ºÆ®¸¦ º¯°æÇÏ¸é ¿øº» ¸®½ºÆ® ¶ÇÇÑ ¿µÇâÀ» ¹Þ½À´Ï´Ù. change_list
ÇÔ¼ö´Â Àü´Þ¹ÞÀº ¸®½ºÆ®ÀÇ ¼¼ ¹ø° ¿ä¼Ò(À妽º 2)¸¦ 5·Î º¯°æÇÕ´Ï´Ù. µû¶ó¼ ¿øº» ¸®½ºÆ®ÀÎ list_x
ÀÇ ¼¼ ¹ø° ¿ä¼Ò°¡ 5·Î ¹Ù²î°Ô µÇ¾î, print(list_x[2])
ÀÇ °á°ú·Î 5°¡ Ãâ·ÂµÇ´Â °ÍÀÔ´Ï´Ù.
class MenuItem:
# À½½Ä ¸Þ´º¸¦ ³ªÅ¸³»´Â Ŭ·¡½º
def __init__(self, name, price):
self.name = name # ¸Þ´º À̸§
self.price = price # ¸Þ´º °¡°Ý
def __str__(self):
# MenuItem ÀνºÅϽºÀÇ Á¤º¸¸¦ ¹®ÀÚ¿·Î ¸®ÅÏ
return f"{self.name} °¡°Ý: {self.price}"
# ¸Þ´º ÀνºÅϽº »ý¼º
burger = MenuItem("Çܹö°Å", 400)
coke = MenuItem("Äݶó", 150)
fries = MenuItem("ÈÄ·»Ä¡ ÈĶóÀÌ", 150)
# ¸Þ´º ÀνºÅϽº Ãâ·Â
print(burger)
print(coke)
print(fries)
À§ÀÇ ÄÚµå´Â MenuItem
Ŭ·¡½º¸¦ Á¤ÀÇÇÏ°í, À̸§°ú °¡°ÝÀ» ÀνºÅϽº º¯¼ö·Î ¹Þ¾Æ ÃʱâÈÇÏ´Â __init__
¸Þ¼Òµå¿Í, ÀνºÅϽºÀÇ Á¤º¸¸¦ ¹®ÀÚ¿·Î ¹ÝȯÇÏ´Â __str__
¸Þ¼Òµå°¡ Æ÷ÇԵǾî ÀÖ½À´Ï´Ù. À̸¦ ÅëÇØ ¸Þ´º À̸§°ú °¡°ÝÀ» Ãâ·ÂÇÒ ¼ö ÀÖ½À´Ï´Ù.
class SimpleCalculator:
# °è»ê±â Ŭ·¡½º
@staticmethod
def add(first_number, second_number):
# ÆĶó¹ÌÅÍ·Î ¹Þ´Â µÎ ¼ýÀÚÀÇ ÇÕÀ» ¸®ÅÏÇÑ´Ù
return first_number + second_number
@staticmethod
def subtract(first_number, second_number):
# ù ¹ø° ÆĶó¹ÌÅÍ¿¡¼ µÎ ¹ø° ÆĶó¹ÌÅ͸¦ »« °ªÀ» ¸®ÅÏÇÑ´Ù
return first_number - second_number
@staticmethod
def multiply(first_number, second_number):
# ÆĶó¹ÌÅÍ·Î ¹Þ´Â µÎ ¼ýÀÚÀÇ °öÀ» ¸®ÅÏÇÑ´Ù
return first_number * second_number
@staticmethod
def divide(first_number, second_number):
# ù ¹ø° ÆĶó¹ÌÅ͸¦ µÎ ¹ø° ÆĶó¹ÌÅÍ·Î ³ª´« °ªÀ» ¸®ÅÏÇÑ´Ù
return first_number / second_number
# °è»ê±â ÀνºÅϽº »ý¼º
calculator = SimpleCalculator()
# °è»ê±â ¿¬»ê È£Ãâ
print(calculator.add(4, 5))
print(calculator.subtract(4, 5))
print(calculator.multiply(4, 5))
print(calculator.divide(4, 5))
À§ ÄÚµå´Â SimpleCalculator
Ŭ·¡½º ¾È¿¡ Á¤ÀÇµÈ ³× °¡Áö Á¤Àû ¸Þ¼Òµå add
, subtract
, multiply
, divide
¸¦ ÅëÇØ °£´ÜÇÑ »ê¼ú ¿¬»êÀ» ¼öÇàÇÕ´Ï´Ù. Ŭ·¡½º¿¡ º¯¼ö°¡ ¾ø±â ¶§¹®¿¡, ¸ðµç ¸Þ¼Òµå°¡ Á¤Àû ¸Þ¼Òµå(@staticmethod
)·Î Á¤ÀǵǾî ÀÖ½À´Ï´Ù. À̸¦ ÅëÇØ ÀνºÅϽº¸¦ »ý¼ºÇÏÁö ¾Ê°íµµ Á÷Á¢ Ŭ·¡½º À̸§À¸·Î ¸Þ¼Òµå¿¡ Á¢±ÙÇÒ ¼ö ÀÖÀ¸³ª, À§ ¿¹Á¦¿¡¼´Â Á÷Á¢ ÀνºÅϽº¸¦ »ý¼ºÇÏ¿© ¸Þ¼Òµå¸¦ È£ÃâÇÏ°í ÀÖ½À´Ï´Ù.
class GameCharacter:
# °ÔÀÓ Ä³¸¯ÅÍ Å¬·¡½º
def __init__(self, name, hp, power):
self.name = name # °ÔÀÓ Ä³¸¯ÅÍÀÇ À̸§
self.hp = hp # °ÔÀÓ Ä³¸¯ÅÍÀÇ Ã¼·Â
self.power = power # °ÔÀÓ Ä³¸¯ÅÍÀÇ °ø°Ý·Â
def is_alive(self):
# °ÔÀÓ Ä³¸¯ÅÍ°¡ »ì¾ÆÀÖ´ÂÁö(ü·ÂÀÌ ÀÌ ³Ñ´ÂÁö) È®ÀÎÇÏ´Â ¸Þ¼Òµå
return self.hp >
def get_attacked(self, damage):
if self.is_alive(): # ÀνºÅϽº°¡ »ì¾ÆÀÖÀ» ¶§¸¸ ü·ÂÀ» ±ð´Â´Ù
if self.hp < damage: # ³²Àº ü·Âº¸´Ù °ø°Ý·ÂÀÌ ´õ Å©¸é ü·ÂÀº ÀÌ µÈ´Ù
self.hp =
else:
self.hp -= damage # °ø°Ý·Â¸¸Å ü·ÂÀ» ±ð´Â´Ù
else:
print(f"{self.name}´ÔÀº ÀÌ¹Ì Á×¾ú½À´Ï´Ù.")
def attack(self, other_character):
# °ÔÀÓ Ä³¸¯ÅÍ°¡ »ì¾ÆÀÖÀ¸¸é ÆĶó¹ÌÅÍ·Î ¹ÞÀº ´Ù¸¥ ij¸¯ÅÍÀÇ Ã¼·ÂÀ» ÀÚ½ÅÀÇ °ø°Ý·Â¸¸Å ±ð´Â´Ù
if self.is_alive():
other_character.get_attacked(self.power)
def __str__(self):
# °ÔÀÓ Ä³¸¯ÅÍÀÇ ÀǹÌÀÖ´Â Á¤º¸¸¦ Æ÷ÇÔÇÑ ¹®ÀÚ¿À» ¸®ÅÏÇÑ´Ù
return f"{self.name}´ÔÀÇ hp´Â {self.hp}¸¸Å ³²¾Ò½À´Ï´Ù."
# °ÔÀÓ Ä³¸¯ÅÍ ÀνºÅϽº »ý¼º
character_1 = GameCharacter("Ww¿µÈÆÀü»çwW", 200, 30)
character_2 = GameCharacter("XxÁö¿õÃÖ°íxX", 100, 50)
# °ÔÀÓ Ä³¸¯ÅÍ ÀνºÅϽºµé ¼·Î °ø°Ý
character_1.attack(character_2)
character_2.attack(character_1)
character_2.attack(character_1)
character_2.attack(character_1)
character_2.attack(character_1)
character_2.attack(character_1)
# °ÔÀÓ Ä³¸¯ÅÍ ÀνºÅϽº Ãâ·Â
print(character_1)
print(character_2)
ÀÌ ÄÚµå´Â GameCharacter
Ŭ·¡½º¸¦ Á¤ÀÇÇÏ°í ÀÖÀ¸¸ç, °¢ ÀνºÅϽº(ij¸¯ÅÍ)´Â À̸§, ü·Â(hp), °ø°Ý·Â(power)À» ¼Ó¼ºÀ¸·Î °¡Áö°í ÀÖ½À´Ï´Ù. Ŭ·¡½º¿¡´Â ü·ÂÀÌ ÀÌ»óÀÎÁö È®ÀÎÇÏ´Â is_alive
¸Þ¼Òµå, °ø°Ý¹ÞÀ» ¶§ ü·ÂÀ» °¨¼Ò½ÃÅ°´Â get_attacked
¸Þ¼Òµå, ´Ù¸¥ ij¸¯Å͸¦ °ø°ÝÇÏ´Â attack
¸Þ¼Òµå, ±×¸®°í ij¸¯ÅÍÀÇ »óŸ¦ ¹®ÀÚ¿·Î ¹ÝȯÇÏ´Â __str__
¸Þ¼Òµå°¡ Æ÷ÇԵǾî ÀÖ½À´Ï´Ù. ½Ã¹Ä·¹À̼ǿ¡ µû¶ó ij¸¯Å͵éÀÌ ¼·Î °ø°ÝÀ» Çϸç, ±× °á°ú¸¦ Ãâ·ÂÇÕ´Ï´Ù.
³×, ¸Â½À´Ï´Ù. Á¦°¡ Á¦°øÇÑ Äڵ忡¼ 10¹ø° ÁÙ¿¡ ¿À·ù°¡ ÀÖ½À´Ï´Ù. self.hp >
À¸·Î Àû¾î¾ß ÇÏ´Â ºÎºÐÀÌ Á¤È®ÇÏ°Ô ¾²ÀÌÁö ¾Ê¾Ò½À´Ï´Ù. Á¤Á¤ÇÏ°Ú½À´Ï´Ù:
def is_alive(self):
# °ÔÀÓ Ä³¸¯ÅÍ°¡ »ì¾ÆÀÖ´ÂÁö(ü·ÂÀÌ ÀÌ ³Ñ´ÂÁö) È®ÀÎÇÏ´Â ¸Þ¼Òµå
return self.hp >
¶ÇÇÑ, °°Àº ¹æ½ÄÀ¸·Î self.hp =
µµ Á¤È®È÷ ÀÛ¼ºµÇÁö ¾Ê¾Ò½À´Ï´Ù. ÇØ´ç ºÎºÐµµ ¼öÁ¤ÇØ¾ß ÇÕ´Ï´Ù:
if self.hp < damage: # ³²Àº ü·Âº¸´Ù °ø°Ý·ÂÀÌ ´õ Å©¸é ü·ÂÀº ÀÌ µÈ´Ù
self.hp =
else:
self.hp -= damage # °ø°Ý·Â¸¸Å ü·ÂÀ» ±ð´Â´Ù
¼öÁ¤Çؼ ¿Ï¼ºµÈ Ŭ·¡½º Á¤ÀÇ´Â ´ÙÀ½°ú °°½À´Ï´Ù:
class GameCharacter:
# °ÔÀÓ Ä³¸¯ÅÍ Å¬·¡½º
def __init__(self, name, hp, power):
self.name = name # °ÔÀÓ Ä³¸¯ÅÍÀÇ À̸§
self.hp = hp # °ÔÀÓ Ä³¸¯ÅÍÀÇ Ã¼·Â
self.power = power # °ÔÀÓ Ä³¸¯ÅÍÀÇ °ø°Ý·Â
def is_alive(self):
# °ÔÀÓ Ä³¸¯ÅÍ°¡ »ì¾ÆÀÖ´ÂÁö(ü·ÂÀÌ ÀÌ ³Ñ´ÂÁö) È®ÀÎÇÏ´Â ¸Þ¼Òµå
return self.hp >
def get_attacked(self, damage):
if self.is_alive(): # ÀνºÅϽº°¡ »ì¾ÆÀÖÀ» ¶§¸¸ ü·ÂÀ» ±ð´Â´Ù
if self.hp < damage: # ³²Àº ü·Âº¸´Ù °ø°Ý·ÂÀÌ ´õ Å©¸é ü·ÂÀº ÀÌ µÈ´Ù
self.hp =
else:
self.hp -= damage # °ø°Ý·Â¸¸Å ü·ÂÀ» ±ð´Â´Ù
else:
print(f"{self.name}´ÔÀº ÀÌ¹Ì Á×¾ú½À´Ï´Ù.")
def attack(self, other_character):
# °ÔÀÓ Ä³¸¯ÅÍ°¡ »ì¾ÆÀÖÀ¸¸é ÆĶó¹ÌÅÍ·Î ¹ÞÀº ´Ù¸¥ ij¸¯ÅÍÀÇ Ã¼·ÂÀ» ÀÚ½ÅÀÇ °ø°Ý·Â¸¸Å ±ð´Â´Ù
if self.is_alive():
other_character.get_attacked(self.power)
def __str__(self):
# °ÔÀÓ Ä³¸¯ÅÍÀÇ ÀǹÌÀÖ´Â Á¤º¸¸¦ Æ÷ÇÔÇÑ ¹®ÀÚ¿À» ¸®ÅÏÇÑ´Ù
return f"{self.name}´ÔÀÇ hp´Â {self.hp}¸¸Å ³²¾Ò½À´Ï´Ù."
ÀÌÁ¦ ÀÌ Å¬·¡½º´Â ÁÖ¾îÁø Á¶°Ç°ú Ãâ·Â ¿¹½Ã¿¡ ¸Â°Ô ¿Ã¹Ù¸£°Ô ÀÛµ¿ÇÒ °ÍÀÔ´Ï´Ù.
¾Ë°Ú½À´Ï´Ù. ÀÌÀü¿¡ ´©¶ôµÈ ºÎºÐÀ» ¸ðµÎ ¼öÁ¤ÇÏ¿© ¿Ï¼ºµÈ Äڵ带 ¾Æ·¡¿¡ Á¦°øÇÕ´Ï´Ù.
class GameCharacter:
# °ÔÀÓ Ä³¸¯ÅÍ Å¬·¡½º
def __init__(self, name, hp, power):
self.name = name # °ÔÀÓ Ä³¸¯ÅÍÀÇ À̸§
self.hp = hp # °ÔÀÓ Ä³¸¯ÅÍÀÇ Ã¼·Â
self.power = power # °ÔÀÓ Ä³¸¯ÅÍÀÇ °ø°Ý·Â
def is_alive(self):
# °ÔÀÓ Ä³¸¯ÅÍ°¡ »ì¾ÆÀÖ´ÂÁö(ü·ÂÀÌ ÀÌ ³Ñ´ÂÁö) È®ÀÎÇÏ´Â ¸Þ¼Òµå
return self.hp >
def get_attacked(self, damage):
if self.is_alive(): # ÀνºÅϽº°¡ »ì¾ÆÀÖÀ» ¶§¸¸ ü·ÂÀ» ±ð´Â´Ù
if self.hp < damage: # ³²Àº ü·Âº¸´Ù °ø°Ý·ÂÀÌ ´õ Å©¸é ü·ÂÀº ÀÌ µÈ´Ù
self.hp =
else:
self.hp -= damage # °ø°Ý·Â¸¸Å ü·ÂÀ» ±ð´Â´Ù
else:
print(f"{self.name}´ÔÀº ÀÌ¹Ì Á×¾ú½À´Ï´Ù.")
def attack(self, other_character):
# °ÔÀÓ Ä³¸¯ÅÍ°¡ »ì¾ÆÀÖÀ¸¸é ÆĶó¹ÌÅÍ·Î ¹ÞÀº ´Ù¸¥ ij¸¯ÅÍÀÇ Ã¼·ÂÀ» ÀÚ½ÅÀÇ °ø°Ý·Â¸¸Å ±ð´Â´Ù
if self.is_alive():
other_character.get_attacked(self.power)
def __str__(self):
# °ÔÀÓ Ä³¸¯ÅÍÀÇ ÀǹÌÀÖ´Â Á¤º¸¸¦ Æ÷ÇÔÇÑ ¹®ÀÚ¿À» ¸®ÅÏÇÑ´Ù
return f"{self.name}´ÔÀÇ hp´Â {self.hp}¸¸Å ³²¾Ò½À´Ï´Ù."
# °ÔÀÓ Ä³¸¯ÅÍ ÀνºÅϽº »ý¼º
character_1 = GameCharacter("Ww¿µÈÆÀü»çwW", 200, 30)
character_2 = GameCharacter("XxÁö¿õÃÖ°íxX", 100, 50)
# °ÔÀÓ Ä³¸¯ÅÍ ÀνºÅϽºµé ¼·Î °ø°Ý
character_1.attack(character_2)
character_2.attack(character_1)
character_2.attack(character_1)
character_2.attack(character_1)
character_2.attack(character_1)
character_2.attack(character_1)
# °ÔÀÓ Ä³¸¯ÅÍ ÀνºÅϽº Ãâ·Â
print(character_1)
print(character_2)
ÀÌ ÄÚµå´Â GameCharacter Ŭ·¡½º¿¡¼ ¸í½ÃµÈ ¸ðµç ¿ä±¸»çÇ×À» ÃæÁ·ÇÕ´Ï´Ù. is_alive
¸Þ¼Òµå´Â ij¸¯ÅÍÀÇ »ýÁ¸ »óŸ¦ È®ÀÎÇÏ°í, get_attacked
¸Þ¼Òµå´Â ij¸¯ÅÍ°¡ °ø°Ý ¹Þ¾ÒÀ» ¶§ ü·ÂÀÌ ÁÙ¾îµå´Â »óȲÀ» ó¸®ÇÕ´Ï´Ù. ¸¸¾à ij¸¯ÅÍÀÇ Ã¼·ÂÀÌ ÀÌÇ϶ó¸é, ÀÌ¹Ì Á×¾úÀ½À» ³ªÅ¸³»´Â ¸Þ½ÃÁö¸¦ Ãâ·ÂÇÕ´Ï´Ù. attack
¸Þ¼Òµå¸¦ ÅëÇØ ´Ù¸¥ ij¸¯Å͸¦ °ø°ÝÇÒ ¼ö ÀÖÀ¸¸ç, __str__
¸Þ¼Òµå´Â ij¸¯ÅÍÀÇ ÇöÀç »óŸ¦ ¹®ÀÚ¿·Î ¹ÝȯÇÕ´Ï´Ù.
class GameCharacter:
# °ÔÀÓ Ä³¸¯ÅÍ Å¬·¡½º
def __init__(self, name, hp, power):
self.name = name # °ÔÀÓ Ä³¸¯ÅÍÀÇ À̸§
self.hp = hp # °ÔÀÓ Ä³¸¯ÅÍÀÇ Ã¼·Â
self.power = power # °ÔÀÓ Ä³¸¯ÅÍÀÇ °ø°Ý·Â
def is_alive(self):
# °ÔÀÓ Ä³¸¯ÅÍÀÇ »ýÁ¸ ¿©ºÎ È®ÀÎ(ü·ÂÀÌ º¸´Ù Å«Áö)
return self.hp >
def get_attacked(self, damage):
if self.is_alive():
if self.hp < damage:
self.hp =
else:
self.hp -= damage
else:
print(f"{self.name}´ÔÀº ÀÌ¹Ì Á×¾ú½À´Ï´Ù.")
def attack(self, other_character):
# ÀÚ½ÅÀÌ »ì¾ÆÀÖ´Â °æ¿ì¿¡¸¸ °ø°ÝÀ» ¼öÇà
if self.is_alive():
other_character.get_attacked(self.power)
def __str__(self):
return f"{self.name}´ÔÀÇ hp´Â {self.hp}¸¸Å ³²¾Ò½À´Ï´Ù."
# °ÔÀÓ Ä³¸¯ÅÍ ÀνºÅϽº »ý¼º
character_1 = GameCharacter("Ww¿µÈÆÀü»çwW", , 30)
character_2 = GameCharacter("XxÁö¿õÃÖ°íxX", 100, 50)
# °ÔÀÓ Ä³¸¯ÅÍ ÀνºÅϽºµé ¼·Î °ø°Ý
character_1.attack(character_2) # ¿µÈÆÀü»ç´Â ÀÌ¹Ì Á×¾úÀ¸¹Ç·Î °ø°Ý ºÒ°¡
character_2.attack(character_1) # Áö¿õÃÖ°í°¡ ¿µÈÆÀü»ç¸¦ °ø°Ý
character_2.attack(character_1) # ¿µÈÆÀü»ç´Â ÀÌ¹Ì Á×¾úÀ¸¹Ç·Î °ø°Ý ºÒ°¡
character_2.attack(character_1) # ¿µÈÆÀü»ç´Â ÀÌ¹Ì Á×¾úÀ¸¹Ç·Î °ø°Ý ºÒ°¡
character_2.attack(character_1) # ¿µÈÆÀü»ç´Â ÀÌ¹Ì Á×¾úÀ¸¹Ç·Î °ø°Ý ºÒ°¡
character_2.attack(character_1) # ¿µÈÆÀü»ç´Â ÀÌ¹Ì Á×¾úÀ¸¹Ç·Î °ø°Ý ºÒ°¡
# °ÔÀÓ Ä³¸¯ÅÍ ÀνºÅϽº Ãâ·Â
print(character_1)
print(character_2)
ÀÌ ÄÚµå´Â °ÔÀÓ Ä³¸¯ÅÍ Å¬·¡½º GameCharacter
¸¦ Á¤ÀÇÇÏ°í, Ŭ·¡½ºÀÇ ÀνºÅϽºÀΠij¸¯ÅÍ µÎ ¸í °£¿¡ °ø°Ý°ú ¹æ¾îÀÇ »óÈ£ÀÛ¿ëÀ» ³ªÅ¸³À´Ï´Ù. is_alive
¸Þ¼Òµå·Î ij¸¯ÅÍ°¡ »ýÁ¸ È®ÀÎÀ» ÇÏ°í, get_attacked
¸Þ¼Òµå·Î °ø°Ý ¹Þ¾ÒÀ» ´ëÀÇ ·ÎÁ÷À» ó¸®ÇÕ´Ï´Ù. ÀÌ¹Ì Ä³¸¯ÅÍ°¡ Á×¾úÀ¸¸é ±×¿¡ ¸Â´Â ¸Þ½ÃÁö¸¦ Ãâ·ÂÇϸç, attack
¸Þ¼Òµå·Î ´Ù¸¥ ij¸¯Å͸¦ °ø°ÝÇÕ´Ï´Ù. ¸Å »óÈ£ÀÛ¿ë ÈÄ¿¡´Â ij¸¯ÅÍÀÇ »óŸ¦ ¹®ÀÚ¿·Î ¹ÝȯÇÏ´Â __str__
¸Þ¼Òµå¸¦ ÅëÇØ °¢ ij¸¯ÅÍÀÇ »óŸ¦ Ãâ·ÂÇÕ´Ï´Ù.