3.1Character 클래스 만들기
게임 캐릭터 클래스를 만든다고 가정하겠습니다. 게임에 등장하는 캐릭터는 플레이어와 몬스터입니다. 모든 캐릭터(추상 클래스)는 다음과 같은 특성을 가집니다.
• 인스턴스 멤버: 이름(name), 체력(hp), 공격력(power)을 가진다.
• 인스턴스 메서드: 공격(attack)할 수 있고 공격당하면 피해(get_damage)를 입는다(모두 추상 메서드로 구현).
코드 7-12 oop2/oop2_3/character.py ①
from abc import * # 추상 클래스로 만듭니다 class Character(metaclass = ABCMeta): def _ _init__(self, name, hp, power): self.name = name self.HP = hp self.power = power # 추상 메서드 # 파생 클래스는 반드시 attack( )과 get_damage( ) 메서드를 오버라이딩해야 합니다 @abstractmethod def attack(self, other, attack_kind): pass @abstractmethod def get_damage(self, power, attack_kind): pass def _ _str__(self): return '{} : {}'.format(self.name, self.HP)
코드에 대한 설명은 주석으로 대신하겠습니다. 이제 플레이어 클래스를 만들어 볼까요?