Python webpage에있는 문서에서 파이썬의 클래식 클래스에 대한 메서드 확인 순서는 깊이 우선 왼쪽에서 오른쪽 탐색으로 설명됩니다. 내가 예상하는 동안Python에서 다중 상속을 사용하는 MRO
Initialized C
Initialized D
: 나는 개체 D의 인스턴스를 만들 때
class A(object):
def __init__(self):
print "Initialized A"
class B(A):
def test():
print "Initialized B"
class C(A):
def __init__(self):
print "Initialized C"
class D(B, C):
def __init__(self):
super(D, self).__init__()
print "Initialized D"
가 :
D()
을 나는 결과를 얻을 나는이 코드 조각이 테스트를하려고 MRO가 깊이 우선이므로 "초기화 된 A", "초기화 된 D"를 인쇄합니다. B에서 초기화가 먼저 검색됩니다 (해당되는 경우). 계층에서 더 깊어 져야하며 기본의 함수를 찾아야합니다 뚜껑 B의 s (즉, 에이). 누군가가 나에게 A 대신에 C의 init 함수를 얻는 이유를 설명해 줄 수 있습니까? D
의