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

Как работает MRO при множественном наследовании в Python

MRO (Method Resolution Order) определяет порядок поиска методов при множественном наследовании. В Python используется алгоритм C3 linearization, который гарантирует последовательный и предсказуемый порядок. Ключевые особенности: 1. Порядок определяется слева направо в списке родительских классов 2. Подкласс имеет приоритет перед родительскими классами 3. При совпадении родительских классов учитывается порядок их объявления Пример: ```python class A: 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" (D -> B -> C -> A) print(D.mro()) # [, , , , ] ``` MRO можно посмотреть через `Class.mro()` или `Class.__mro__`. Если алгоритм C3 не может построить линейный порядок (например, при конфликтах), Python вызовет `TypeError`.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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