Встречается на 1% собеседований по Python
В чем разница между композицией и наследованным в Python
Композиция и наследование — два разных подхода к организации кода.
Наследование создает отношение "является" (is-a). Дочерний класс наследует все методы и атрибуты родительского:
python
class Animal:
def speak(self):
pass
class Dog(Animal):
def speak(self):
return "Woof!"Композиция создает отношение "имеет" (has-a). Класс содержит экземпляр другого класса как атрибут:
python
class Engine:
def start(self):
return "Engine started"
class Car:
def __init__(self):
self.engine = Engine()
def start(self):
return self.engine.start()Ключевые различия:
- Наследование жестко связывает классы, композиция дает больше гибкости
- При изменении родительского класса могут сломаться все дочерние
- Композиция лучше подходит для случаев, когда поведение может меняться динамически
В Python предпочтительнее использовать композицию там, где это возможно, следуя принципу "композиция предпочтительнее наследования".

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