Ответ
Ключевое слово super() используется для доступа к методам и атрибутам родительского класса из дочернего. Это основной механизм для расширения функциональности родительских методов, а не их полной замены.
Пример в Python:
class Vehicle:
def __init__(self, brand):
self.brand = brand
print(f"Vehicle {brand} created")
class Car(Vehicle):
def __init__(self, brand, model):
# Вызов __init__ родительского класса Vehicle
super().__init__(brand)
self.model = model
print(f"Car model: {model}")
my_car = Car("Toyota", "Camry")
# Вывод:
# Vehicle Toyota created
# Car model: Camry
Практическое применение:
- В конструкторах (
__init__): Гарантирует корректную инициализацию родительской части объекта. - При переопределении методов: Позволяет выполнить код родителя, а затем добавить новую логику.
class Logger: def log(self, message): print(f"LOG: {message}")
class TimedLogger(Logger): def log(self, message):
Сначала выполняем стандартное логирование
super().log(message)
# Затем добавляем временную метку
print(f"Timestamp: {time.time()}")
**Важно:** В Python `super()` корректно работает с множественным наследованием, следуя порядку разрешения методов (MRO).