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

Как реализован поиск атрибутов в множественном наследовании в Python

Python использует алгоритм MRO (Method Resolution Order) для поиска атрибутов при множественном наследовании. Порядок определяется C3-линеаризацией, которая гарантирует сохранение порядка в родительских классах и отсутствие конфликтов.

python
class A:
    def method(self):
        return "A"

class B(A):
    def method(self):
        return "B"

class C(A):
    def method(self):
        return "C"

class D(B, C):
    pass

d = D()
print(d.method())  # Выведет "B" (первый родитель в списке наследования)
print(D.__mro__)   # Показывает порядок поиска: D -> B -> C -> A -> object

MRO можно посмотреть через класс.__mro__. Если порядок невалиден (например, циклическое наследование), Python выдаст ошибку.

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

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

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

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