안녕하세요. 언제나 휴일, 언휴예요.
이전 강의에서 기반 형식 생성자가 입력 인자가 있을 때 파생 형식 생성자에서 기반 형식 이름을 통해 기반 형식의 생성자를 호출하는 것을 살펴보았어요.
그런데 파생 형식에서 기반 형식의 멤버를 사용할 때 super 키워드를 사용할 수 있어요. 이전 강의에서 다루었던 기반 형식 생성자가 입력 인자가 있을 때도 기반 형식 이름 대신 super 키워드를 사용할 수 있어요. 대신 self는 입력 인자로 전달하지 않아요. 또한 무효화 상태의 기반 형식 멤버 메서드를 호출할 때 super 키워드를 사용할 수 있어요.
#super 키워드 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) super().__init__(name) #기반 형식 이름 대신 super() 사용, self 생략 print(name+" 피아니스트") def Play(self): super().Play() #무효화 상태의 기반 형식 멤버 메서드 호출 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()