본문 바로가기
Python/Python FAQ

Python __init__() 메서드와 함께 Python super() 이해하기 [중복], Understanding Python super()

by 베타코드 2023. 5. 6.
반응형

질문

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() 사용 가이드를 설명하는 가이드를 참조합니다.

반응형

댓글