Встречается на собеседованиях • сегодня
Что такое diamond inheritance
Diamond inheritance (алмазное наследование) возникает, когда класс наследуется от двух классов, которые в свою очередь наследуются от одного общего родителя. Это создаёт неоднозначность при вызове методов общего предка.
Пример:
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В Python эта проблема решается через Method Resolution Order (MRO), который определяет порядок поиска методов. MRO следует алгоритму C3 linearization. Для просмотра MRO можно использовать ClassName.__mro__. В примере выше порядок будет: D → B → C → A → object.

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