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
반응형
'프로그래밍 언어 > Python' 카테고리의 다른 글
| 다른 Python 파일을 가져 오는 방법 (import) (0) | 2021.10.21 |
|---|---|
| pip로 설치된 모든 패키지를 제거하는 가장 쉬운 방법 (0) | 2021.10.21 |
| 하나를 수정하지 않고 파이썬에서 두 배열을 연결하는 방법 (0) | 2021.10.21 |
| Python 모듈의 모든 함수를 나열하는 방법 (0) | 2021.10.19 |
| Python에서 matplotlib를 사용하여 로그 축 플로팅 (0) | 2021.10.19 |