파이썬에서 다중 상속을 사용하면서 문제가 발생했는데 내가 잘못하고있는 것을 이해할 수 없습니다.파이썬 2.7 메소드 해상도 오버 라이드 주문
나는 세 클래스 A, B, C가 다음과 같이 정의되어있어 작동하지 않습니다.
class A(object):
def __init__(**kwargs):
.
.
class B(object):
def __init__(**kwargs):
# prepare a dictionary "options" with the options used to call A
super(B,self).__init__(**options)
def coolmethod(x):
#some cool stuff
A와 B의 경우 아무런 문제가 없습니다.
나는 A로부터 및 B 그래서 나는 coolmethod가 B에 정의 할 수있는 모두 상속 세 번째 클래스 C를 만들려하지만,
이 class C(A,B)
가하는 정의하려고 A.에 정의 된 생성자를 사용하고 싶습니다 MRO가 정의되지 않았기 때문에 작동하지 않습니다.
그러나 class C(B,A)
을 정의하는 것은 내가 아니라 B. 초기화보다 A.에게 초기화을 사용할 수 없습니다.
어떻게 문제를 해결할 수 있습니까?
감사합니다 .. 꽤 쉬웠습니다. 왜 클래스 선언의 순서가 중요 할 지 이해할 수 없습니다 .... – lucacerone
주문에 대한 설명은 아래의 답변을 참조하십시오. –