34.5 연습문제: 게임 캐릭터 클래스 만들기

다음 소스 코드에서 클래스를 작성하여 게임 캐릭터의 능력치와 '베기'가 출력되게 만드세요.

practice_class.py

                                            
...
                                            
 
x = Knight(health=542.4, mana=210.3, armor=38)
print(x.health, x.mana, x.armor)
x.slash()

실행 결과

542.4 210.3 38
베기

정답

class Knight:
    def __init__(self, health, mana, armor):
        self.health = health
        self.mana = mana
        self.armor = armor
 
    def slash(self):
        print('베기')

해설

x = Knight(health=542.4, mana=210.3, armor=38)와 같이 클래스에 값을 넣어서 인스턴스를 생성하고, print(x.health, x.mana, x.armor)와 같이 인스턴스 속성을 출력하고 있습니다. 따라서 classKnight 클래스를 만들고 __init__ 메서드에 매개변수로 self, health, mana, armor를 지정합니다. 이때 반드시 첫 번째 매개변수는 self라야 합니다. 함수 안에서는 self.health = health처럼 모든 매개변수를 그대로 속성으로 만들어줍니다.

그다음에 x.slash()와 같이 인스턴스로 메서드를 호출하고 있으므로 Knight 클래스 안에 slash 메서드를 만들고 print'베기'를 출력하도록 만들면 됩니다.