더북(TheBook)

복잡해 보이죠? 형식만 봐서는 개념이나 사용법이 잘 와닿지 않을 것 같으니 앞에서 작성한 유닛 생성 코드를, 클래스를 사용해 다시 만들어 보겠습니다.

먼저 클래스명은 Unit이라고 정의합니다. Unit 클래스 안에 메서드 하나를 만드는데, 이름은 __init__(언더바를 앞뒤로 각각 2개씩)으로 합니다. 첫 번째 전달값으로 self를 넣고 나머지 전달값으로 이름, 체력, 공격력을 넣습니다. 메서드 안에는 전달값을 받는 변수를 정의합니다. 이때 변수는 다음과 같은 형식으로 정의합니다.

형식

self.변수명 = 값

이렇게 메서드 안에 정의한 변수를 인스턴스 변수라고 합니다. 클래스 안에서 사용하는 변수라고 보면 됩니다. 인스턴스 변수에 관해서는 9.2.2 인스턴스 변수에서 자세히 다루겠습니다. 마지막으로 생성한 유닛 정보를 print() 문으로 출력합니다.

class Unit:
    def __init__(self, name, hp, damage):
        self.name = name     # 인스턴스 변수 name에 전달값 name 저장
        self.hp = hp         # 인스턴스 변수 hp에 전달값 hp 저장
        self.damage = damage # 인스턴스 변수 damage에 전달값 damage 저장
        print("{0} 유닛을 생성했습니다.".format(self.name))
        print("체력 {0}, 공격력 {1}".format(self.hp, self.damage))
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.