Встречается на собеседованиях • сегодня
Что такое 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
интервью вопросы и ответы