반응형
질문
왜 super()
를 사용하나요?
Base.__init__
와 super().__init__
를 사용하는 것에 차이가 있나요?
class Base(object): def __init__(self): print "Base created" class ChildA(Base): def __init__(self): Base.__init__(self) class ChildB(Base): def __init__(self): super(ChildB, self).__init__() ChildA() ChildB()
답변
super()
는 기본 클래스를 명시적으로 참조하지 않아도 되어 좋을 수 있습니다. 그러나 주요 이점은 모든 종류의 다중 상속에서 발생할 수 있는 재미있는 일들입니다. 아직 이에 대해 알지 못했다면 super의 표준 문서를 확인하세요.
Python 3.0에서 구문이 변경되었음에 유의하세요. super(ChildB, self).__init__()
대신 super().__init__()
을 사용할 수 있습니다. 이것은 나쁘지 않은 것 같습니다. 표준 문서는 또한 super()
사용 가이드를 설명하는 가이드를 참조합니다.
반응형
댓글