Почему при ромбовидном наследовании конструктор Pepega вызывается последним?

class Pepega:
    def __init__(self) -> None:
            print("this pepega()")

class Smart(Pepega):
    def __init__(self):
        print("__init__Smart")
        super().__init__()

class Monkey(Pepega):
    def __init__(self):
        print("Monkey()")
        super().__init__()

class SmartMonk(Monkey, Smart):
    def __init__(self):
        print("__init__SmartMonk")
        super().__init__()

smrtM = SmartMonk()

Ответы (1 шт):

Автор решения: Vasily Isaev

В питоне используется MRO - метод разрешение порядка при ромбовидном наследовании, можно почитать тут https://tirinox.ru/mro-python/

→ Ссылка