1
請向我解釋以下內容。如果我執行此:超級()的第二個基類的訪問方法
class Base1:
def foo(self):
print('in Base1.foo')
b1 = Base1()
b1.foo()
class Base2:
def foo(self):
print('in Base2.foo')
b2 = Base2()
b2.foo()
class Child1(Base1, Base2):
def foo(self):
super(Child1,self).foo()
c1 = Child1()
c1.foo()
class Child2(Base1, Base2):
def foo(self):
super(Base1,self).foo()
c2 = Child2()
c2.foo()
我得到這個:
in Base1.foo
in Base2.foo
in Base1.foo
in Base2.foo
我理解的前三行輸出。但爲什麼我必須將第一個基類的名稱給super()
才能獲得第二個基類的方法?
我知道的方法解析順序的,但我不知道超()獲取「下一個」基類排隊......謝謝 – steffen