36. Python에서의 상속과 다형성 – 입력 인자가 있는 기반 형식 생성자

안녕하세요. 언제나 휴일, 언휴예요.

이번 강의에서는 기반 형식의 생성자(__init__ 메서드)가 입력 인자가 있을 때 파생 형식에서 이를 호출하는 방법을 알아볼게요.

예를 들어 기반 형식 Musician과 파생 형식 Pianist가 있다고 가정합시다. 만약 Musician의 생성자(__init__ 메서드)에 이름을 입력 인자로 전달받는다면 Pianist 형식의 생성자에서 Musician의 생성자를 호출하면서 이름을 전달해 주어야 합니다.

파생 형식에서 기반 형식의 입력 인자가 있는 생성자를 호출할 때는 기반 형식 이름을 통해 접근할 수 있어요. 주의할 점은 여기에서 호출할 때 self도 전달해 주어야 합니다.

#입력 인자가 있는 기반 형식 생성자

class Musician:
    def __init__(self,name):
        self.__name = name
        print(name + " 음악가 생성")

    def GetName(self):
        return self.__name

    def Play(self):
        print(self.__name + "음악가, 랄라라~")

class Pianist(Musician):
    def __init__(self,name):
        Musician.__init__(self,name)
        print(name+" 피아니스트")

    def Play(self):
        print(self.GetName() +", 딩동댕")

    def Tuning(self):
        print("도도 레레 미미")

class Drummer(Musician):
    def __init__(self,name):
        Musician.__init__(self,name)

    def TurnStick(self):
        print("휘리릭~ 휘릭~")

band = list()
band.append(Pianist("홍길동"))
band.append(Drummer("강감찬"))

for musician in band:
    musician.Play()
[그림 1] 입력 인자가 있는 기반 형식 생성자
[그림 1] 입력 인자가 있는 기반 형식 생성자