Встречается на собеседованиях • сегодня
Какой порядок разрешения доступа к атрибутам при множественном наследовании в Python
Порядок разрешения атрибутов при множественном наследовании определяется алгоритмом MRO (Method Resolution Order), который использует C3 linearization. Порядок можно посмотреть через `ClassName.__mro__` или `ClassName.mro()`.
Пример:
```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
print(D.__mro__) # (, , , , )
d = D()
d.method() # Выведет "B", так как поиск идет в порядке D -> B -> C -> A
```
Ключевые правила MRO:
1. Сначала проверяется сам класс
2. Затем родительские классы слева направо (в порядке наследования)
3. Далее по цепочке вглубь, избегая дублирования
4. Всегда заканчивается классом `object`

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