Справочник по функциям Python

super

Даёт доступ к методам родительского класса из метода дочернего класса.

Python 3.13
super()
super(type[, object_or_type])

Параметры

typetypeнеобязательный
Класс, после которого начинается поиск метода; внутри метода, объявленного в классе, его можно не указывать.
object_or_typeAnyнеобязательный
Объект или класс, для которого вызывается метод; внутри метода подставляется сам.

Возвращаемое значение

Объект-посредник, через который вызываются методы родительского класса.

Примеры

Вызов родительского __init__

Python 3.13
class Animal:
    def __init__(self, name):
        self.name = name


class Dog(Animal):
    def __init__(self, name, breed):
        super().__init__(name)
        self.breed = breed


dog = Dog('Rex', 'beagle')
print(dog.name, dog.breed)
Rex beagle

Дополнение метода родителя

Python 3.13
class Greeter:
    def greet(self):
        return 'Hello'


class LoudGreeter(Greeter):
    def greet(self):
        return super().greet().upper() + '!'


print(LoudGreeter().greet())
HELLO!

Подробности

Без аргументов super() работает только внутри метода, объявленного в классе: Python сам подставляет текущий класс и self. Если в дочернем __init__ не вызвать super().__init__(...), атрибуты, которые задаёт родитель, не появятся. При множественном наследовании super() идёт по порядку поиска методов (MRO), а не обязательно к прямому родителю.

Смотрите также

Где изучить