Ваш код и другие ответы являются ошибками. Они пропускают вызовы super()
в первых двух классах, которые необходимы для совместной работы подкласса.
Вот фиксированная версия кода:
class First(object):
def __init__(self):
super(First, self).__init__()
print("first")
class Second(object):
def __init__(self):
super(Second, self).__init__()
print("second")
class Third(First, Second):
def __init__(self):
super(Third, self).__init__()
print("third")
Вызов super()
находит следующий метод в MRO на каждом шаге, поэтому First и Second также должны иметь его, иначе выполнение останавливается в конце Second.__init__()
.
Это то, что я get:
>>> Third()
second
first
third