클래스 속성은 클래스 내부의 메서드 외부 공간에 정의하면 됩니다. 인스턴스 속성에 객체명.속성으로 접근하듯이 메서드에서 클래스 속성에 접근할 때는 클래스명.속성으로 접근합니다. 전체 캐릭터 개수를 나타내는 속성을 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)
    신간 소식 구독하기
    뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.