Урок 12: super() — расширение конструктора
Что, если у ребёнка есть дополнительные данные, которых нет у родителя — например, порода собаки? Он получает свой __init__, но родительский мы не копируем: мы вызываем его через super().__init__(...) и добавляем только новое. Настоящее повторное использование, ноль дублирования.
super() — это прямая связь с мамой: «ты занимаешься своими частями (именем), а я добавлю свои (породу)».
- super()
- Вызов родительского класса изнутри дочернего — в основном super().__init__(...), чтобы выполнить конструктор родителя.
- расширение конструктора
- Конструктор дочернего класса, который сначала вызывает конструктор родителя, а затем добавляет свои новые атрибуты.