더북(TheBook)

AttackUnit 클래스의 __init__() 생성자에서 name, hp 인스턴스 변수를 정의하는 부분은 다음과 같이 부모 클래스인 Unit 클래스의 __init__() 생성자를 호출하는 방식으로 코드를 간소화할 수가 있습니다. 이때 self도 함께 넘겨 줘야 합니다.

# 공격 유닛
class AttackUnit(Unit): # Unit 클래스 상속
    def __init__(self, name, hp, damage):
        Unit.__init__(self, name, hp) # 부모 클래스의 생성자 호출
        self.damage = damage
    (생략)

이제 AttackUnit 클래스는 Unit 클래스의 모든 인스턴스 변수와 메서드를 그대로 사용할 수 있습니다. 또한, AttackUnit 클래스만을 위한 인스턴스 변수와 메서드를 추가할 수도 있습니다.

이처럼 서로 관련 있는 클래스들에서 공통 부분을 모아 부모 클래스로 정의하고 자식 클래스에서는 필요한 부분을 확장해 사용하면 불필요한 코드의 중복 작성을 방지할 수 있고 수정이나 추가 사항이 생길 때 작업 범위를 최소화할 수 있습니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.