Пожалуйста, объясните мне следующее. Если я выполнить это:Метод доступа второго базового класса с супер()
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