Métodos frecuentes

Los métodos que comienzan y terminan con un doble guión bajo son una especie de "ganchos" que se ejecutan cuando ocurre algo con el objeto: cuando se crea, por ejemplo (ya hemos visto que esto provoca la ejecución del método __init__). Pero hay otros. Veamos un par de ellos:

El método __del__

Este método se ejecuta cada vez que se elimina un objeto y puede servirnos para "avisar" a otros objetos de que va a ser eliminado, o para hacer limpieza de variables que ya no van a ser necesarias:

class Circulo:
    
    def __init__(self, radio):
        self.radio = radio
    
    def __del__(self):
        print("Círculo eliminado")

c = Circulo(3)

del(c)

Círculo eliminado

El método __str__

Este método se ejecuta cuando se imprime el objeto (usando la función print):

class Circulo:
    
    def __init__(self, radio):
        self.radio = radio
    
    def __str__(self):
        return "Círculo de radio {}".format(self.radio)

c = Circulo(3)

print(c)

Círculo de radio 3