Встречается на собеседованиях • сегодня
Как разрешаются конфликты имен при множественном наследовании в Python
В Python конфликты имен при множественном наследовании разрешаются с помощью алгоритма C3 Linearization (Method Resolution Order - 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
d = D()
d.method() # Выведет "B" - первый родитель в списке наследования
```
MRO можно посмотреть через `ClassName.__mro__`:
```python
print(D.__mro__) # (, , , , )
```
Если возникает неразрешимый конфликт (например, diamond-проблема с разными порядками), Python выдаст ошибку `TypeError: Cannot create a consistent method resolution order`.

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