Встречается на 2% собеседований по Python
Что такое Method Resolution Order в Python 2
MRO (Method Resolution Order) в Python 2 определяет порядок поиска методов при множественном наследовании. В Python 2 используется алгоритм depth-first, left-to-right для классических классов (без наследования от object) и алгоритм C3 linearization для новых классов (унаследованных от object).
Пример с классическим классом (Python 2):
python
class A:
def foo(self):
print("A")
class B(A):
pass
class C(A):
def foo(self):
print("C")
class D(B, C):
pass
d = D()
d.foo() # Выведет "A" (depth-first поиск)Пример с новым классом:
python
class A(object):
def foo(self):
print("A")
class B(A):
pass
class C(A):
def foo(self):
print("C")
class D(B, C):
pass
d = D()
d.foo() # Выведет "C" (C3 linearization)C3 алгоритм предотвращает проблемы с ромбовидным наследованием и обеспечивает более предсказуемый порядок. Можно посмотреть MRO через ClassName.__mro__.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
Похожие вопросы
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы