더북(TheBook)

클래스 속성은 클래스 내부의 메서드 외부 공간에 정의하면 됩니다. 인스턴스 속성에 객체명.속성으로 접근하듯이 메서드에서 클래스 속성에 접근할 때는 클래스명.속성으로 접근합니다. 전체 캐릭터 개수를 나타내는 속성을 total_character_cnt라 하고 객체가 하나 새로 생길 때마다 1을 증가시키겠습니다. 그러려면 생성자 내부에 total_character_cnt를 증가시키는 명령어가 있어야 합니다. 다음 코드를 실행해 봅시다.

class Character:
    # 클래스 속성
    total_character_cnt = 0

    def __init__(self, name, hp, ad):
        self.name = name
        self.strength = hp
        self.attack_damage = ad
        print('Character 클래스의 객체 =>', self.name)
        # 객체 생성 시 클래스 속성 1씩 증가시키기
        Character.total_character_cnt += 1
        print('현재 캐릭터 개수 =', Character.total_character_cnt)
    def information(self):
        ...
    def attack(self, target):
        ...
    def level_up(self):
        ...

# 검술사, 요정, 도적 객체 생성
swordsman = Character('검술사', 100, 10)
fairy = Character('요정', 60, 5)
thief = Character('도적', 85, 8)
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.