프로그래밍 언어/Python

__init __ () 메서드로 파이썬 super () 이해하기

Rateye 2021. 10. 21. 10:57
728x90
반응형
질문 : __init __ () 메서드로 파이썬 super () 이해하기

super() 의 사용을 이해하려고 노력하고 있습니다. 외관상 두 자식 클래스를 모두 만들 수 있습니다.

다음 두 아이 클래스의 실제 차이점에 대해 알고 싶습니다.

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에서 구문이 변경되었습니다 . IMO가 훨씬 더 좋은 super(ChildB, self).__init__() 대신 super().__init__() 라고 말할 수 있습니다. 표준 문서는 또한 매우 설명적인 super() 사용 가이드를 참조합니다.

출처 : https://stackoverflow.com/questions/576169/understanding-python-super-with-init-methods
728x90
반응형