super
Функция super() возвращает объект-посредник для вызова методов родительского класса. Чаще всего используется для переопределения методов в подклассах.
Синтаксис
super([type[, object]])
Аргументы
- type (необязательный):
- Что означает: Класс, для которого нужно найти родительский класс.
- Возможные значения: Класс или None.
- object (необязательный):
- Что означает: Объект, связанный с классом.
- Возможные значения: Экземпляр класса или None.
Возвращаемое значение
Возвращает объект, через который можно вызывать методы родительского класса.
Примеры использования
class Parent:
def greet(self):
return "Hello from Parent"
class Child(Parent):
def greet(self):
return super().greet() + " and Child"
obj = Child()
print(obj.greet()) # Вывод: "Hello from Parent and Child"
Частые ошибки
Использование super() вне класса:
print(super()) # Ошибка: RuntimeError
Как исправить: Убедитесь, что super() вызывается в методе класса.
Часто задаваемые вопросы
- Можно ли использовать super() в несколько уровней наследования? Да, super() корректно работает в цепочке наследования.