Как наследуются классы и работает 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/

21 Авг 2019 в 06:58
233 +1
0
Ответы
1

Порядок поиска методов при наследовании определяется алгоритмом MRO (Method Resolution Order). В вашем примере с классами A, B, C, D и E, порядок поиска метода foo будет следующим:

EBCDAobject

То есть метод foo будет вызван из класса E, так как он находится первым в порядке MRO.

20 Апр 2024 в 13:10
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир