class Base: def __init__(self): print('Base.__init__') class Child1(Base): def __init__(self): Base.__init__(self) print('Child1.__init__') class Child2(Base): def __init__(self): Base.__init__(self) print('Child2.__init__') class Child3(Base): def __init__(self): Child1.__init__(self) Child2.__init__(self) print('Child3.__init__') c3 = Child3()
Проверьте вывод печати – это то, что вы ожидали! База .__ init__
Child1 .__ init__
База .__ init__
Child2 .__ init__
Child3 .__ init__
и теперь попробуй это
class Base: def __init__(self): print('Base.__init__') class Child1(Base): def __init__(self): super().__init__() print('Child1.__init__') class Child2(Base): def __init__(self): super().__init__() print('Child2.__init__') class Child3(Child1, Child2): def __init__(self): super().__init__() print('Child3.__init__') c3 = Child3() print(Child3.__mro__)
(
Оригинал: “https://dev.to/taleb/mro-4n95”