Встречается на собеседованиях • сегодня

Почему с появлением базового класса object появилось правило MRO

В Python метод разрешения порядка (MRO) появился с введением object как базового класса для поддержки множественного наследования. MRO определяет порядок, в котором интерпретатор ищет методы в иерархии классов. Алгоритм C3 линеаризации гарантирует, что порядок будет последовательным и предсказуемым, избегая проблем типа "ромбовидного наследования".

Пример:

python
class A(object):
    def method(self):
        print("A")

class B(A):
    def method(self):
        print("B")

class C(A):
    def method(self):
        print("C")

class D(B, C):
    pass

d = D()
d.method()  # Выведет "B" (MRO: D → B → C → A → object)
print(D.__mro__)  # Показывает порядок поиска методов

Без object и MRO множественное наследование могло приводить к неоднозначностям.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы