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

Что такое проблема ромба (Diamond Problem)

Проблема ромба (Diamond Problem) возникает в языках с множественным наследованием, когда класс наследует от двух классов, которые в свою очередь наследуют от одного базового класса. Это создает неоднозначность при вызове метода - Python решает эту проблему через MRO (Method Resolution Order).

Пример:

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 использует алгоритм C3 для построения MRO, который гарантирует последовательный и предсказуемый порядок поиска методов. Можно посмотреть MRO класса: print(D.__mro__) - покажет порядок наследования.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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