super()

Llama al método del padre desde una subclase. Escribe el comportamiento extra después (o alrededor) de esa llamada.

Sintaxis

class Child(Parent):
def method(self, n):
super().method(n)
  • Si redefines __init__, llama a super().__init__() o la configuración del padre nunca se ejecuta.

Ejemplo

class Counter:
    def __init__(self):
        self.n = 0

    def add(self):
        self.n += 1

class Fast(Counter):
    def add(self):
        super().add()
        self.n += 1

c = Fast()
c.add()
print(c.n)

Salida:

2

Errores comunes

  • Olvidar self en una redefinición es un TypeError. Olvidar super() se salta el método del padre por completo.

Practícalo