Встречается на 1% собеседований по Python
Как разрешаются конфликты имен при множественном наследовании в 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" - первый родитель в списке наследования
text
MRO можно посмотреть через `ClassName.__mro__`:
```python
print(D.__mro__) # (<class '__main__.D'>, <class '__main__.B'>, <class '__main__.C'>, <class '__main__.A'>, <class 'object'>)Если возникает неразрешимый конфликт (например, diamond-проблема с разными порядками), Python выдаст ошибку TypeError: Cannot create a consistent method resolution order.

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