所以我們有下面的代碼片段。我不明白爲什麼這樣做。爲什麼super(B, self).go()
解析爲C
類的go
方法?在python爲什麼超級行爲這種方式與多繼承?
class A(object):
def go(self):
print("go A go!")
class B(A):
def go(self):
super(B, self).go()
print("go B go!")
class C(A):
def go(self):
super(C, self).go()
print("go C go!")
class D(B, C):
def go(self):
super(D, self).go()
print("go D go!")
d = D()
d.go()
# go A go!
# go C go!
# go B go!
# go D go!
您是否閱讀過MRO文檔? https://www.python.org/download/releases/2.3/mro/不僅解釋了什麼,而且還解釋了爲什麼*。 –