Как наследуются классы и работает mro? Не очень понятно. Если есть вот этоclass A: def foo(self): print("A") class B(A): pass class C(A): def foo(self): print("C") class D: def foo(self): print("D") class E(B, C, D): pass E().foo() То порядок поиска foo будет E, B, C, D, A, object? Или как. Эту статью кидать не надо https://habr.com/ru/post/62203/
Порядок поиска методов при наследовании определяется алгоритмом MRO (Method Resolution Order). В вашем примере с классами A, B, C, D и E, порядок поиска метода foo будет следующим:
EBCDAobject
То есть метод foo будет вызван из класса E, так как он находится первым в порядке MRO.
Порядок поиска методов при наследовании определяется алгоритмом MRO (Method Resolution Order). В вашем примере с классами A, B, C, D и E, порядок поиска метода foo будет следующим:
EBCDAobjectТо есть метод foo будет вызван из класса E, так как он находится первым в порядке MRO.