Встречается на собеседованиях • сегодня
Что будет, если наследоваться от нескольких классов, а у них есть одинаковые методы
При множественном наследовании порядок разрешения методов определяется алгоритмом MRO (Method Resolution Order). В Python используется C3 linearization для определения порядка поиска методов.
python
class A:
def method(self):
print("A method")
class B:
def method(self):
print("B method")
class C(A, B):
pass
c = C()
c.method() # Выведет "A method", так как A указан первым
text
Ключевые моменты:
1. Порядок наследования важен - Python ищет методы слева направо
2. Можно посмотреть MRO через `ClassName.__mro__`
3. Если возникает конфликт, который невозможно разрешить (ромбовидное наследование с несовместимым порядком), Python вызовет TypeError
Для явного вызова метода конкретного родителя можно использовать `super()` или обращение напрямую к классу: `ParentClass.method(self)`
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы