반응형
Python의 상속 된 클래스에서 기본 클래스 메서드 (및 생성자)를 올바르게 호출하는 방법은 무엇입니까?
이 질문에 이미 답변이 있습니다.
에서 상속 하는 Base
클래스와 클래스 가 있다고 가정 합니다. Python의 자식 클래스에서 기본 클래스 생성자를 호출하는 올바른 방법은 무엇입니까? 나는 사용 합니까?Child
Base
super
지금까지 내가 가지고있는 것의 예는 다음과 같습니다.
class Base(object):
def __init__(self, value):
self.value = value
...
class Child(Base):
def __init__(self, something_else):
super(Child, self).__init__(value=20)
self.something_else = something_else
...
이 올바른지?
감사합니다, Boda Cydo.
맞아요. 다음 과 같이 클래스에서 __init__
직접 메서드를 호출 할 수도 있습니다 Base
.
class Child(Base):
def __init__(self, something_else):
Base.__init__(self, value = 20)
self.something_else = something_else
그것이 제가 일반적으로하는 방식입니다. 그러나 다중 상속이있는 경우 잘 작동하지 않기 때문에 권장되지 않습니다. 물론 다중 상속은 그 자체로 모든 종류의 이상한 효과를 가지고 있으므로 전염병처럼 피합니다.
일반적으로 use super
에서 상속하는 클래스의 경우 에도 필요합니다.
Python 3.1을 사용하는 경우 super는 새롭고 개선되었습니다. 클래스 및 인스턴스 인수를 알아냅니다. 따라서 인수없이 super를 호출해야합니다.
class Child(Base):
def __init__(self, value, something_else):
super().__init__(value)
self.something_else = something_else
...
네, 맞습니다. 수업 에 합격 value
하고 Child
싶다면 이런 식으로 할 수 있습니다.
class Child(Base):
def __init__(self, value, something_else):
super(Child, self).__init__(value)
self.something_else = something_else
...
반응형
'Programing' 카테고리의 다른 글
apache 및 mod_wsgi를 사용하는 여러 장고 사이트 (0) | 2020.12.30 |
---|---|
Java EE 6에 대한 모든 참조 구현 목록은 어디에서 찾을 수 있습니까? (0) | 2020.12.30 |
페이지로드시 JSF 관리 Bean 조치 호출 (0) | 2020.12.30 |
WPF C # : 끌어서 놓기를 통해 목록 상자의 항목 재정렬 (0) | 2020.12.30 |
다른 파일의 클래스에서 함수를 가져 오시나요? (0) | 2020.12.30 |