Sie sind auf Seite 1von 3

Métodos especiales de clase

Constructor y destructor
In [8]: class Pelicula:
# Constructor de clase (al crear la instancia)
def __init__(self,titulo,duracion,lanzamiento):
self.titulo = titulo
self.duracion = duracion
self.lanzamiento = lanzamiento
print("Se ha creado la película",self.titulo)

# Destructor de clase (al borrar la instancia)


def __del__(self):
print("Se está borrando la película", self.titulo)

p = Pelicula("El Padrino",175,1972)

Se ha creado la película El Padrino

Al reinstanciar la misma variable se crea de nuevo y se borra la anterior

In [9]: p = Pelicula("El Padrino",175,1972)


Se ha creado la película El Padrino
Se está borrando la película El Padrino

String
Para devolver una cadena por defecto al convertir un objeto a una cadena con str(objeto):

In [11]: p

Out[11]: <__main__.Pelicula at 0x20bb8318fd0>

In [12]: str(10)

Out[12]: '10'
In [13]: str(p)
Out[13]: '<__main__.Pelicula object at 0x0000020BB8318FD0>'

In [14]: class Pelicula:


# Constructor de clase
def __init__(self,titulo,duracion,lanzamiento):
self.titulo = titulo
self.duracion = duracion
self.lanzamiento = lanzamiento
print("Se ha creado la película",self.titulo)

# Destructor de clase
def __del__(self):
print("Se está borrando la película", self.titulo)

# Redefinimos el método string


def __str__(self):
return "{} lanzada en {} con una duración de {} minutos".format(self.titulo,self.lanzam
iento,self.duracion)

p = Pelicula("El Padrino",175,1972)

Se ha creado la película El Padrino

In [15]: str(p)

Out[15]: 'El Padrino lanzada en 1972 con una duración de 175 minutos'

Length
Para devolver un número que simula la longitud del objeto len(objeto):

In [16]: len(p)

---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-16-503cac95e140> in <module>()
----> 1 len(p)

TypeError: object of type 'Pelicula' has no len()

In [17]: class Pelicula:


# Constructor de clase
self.duracion = duracion
self.lanzamiento = lanzamiento
print("Se ha creado la película",self.titulo)

# Destructor de clase
def __del__(self):
print("Se está borrando la película", self.titulo)

# Redefinimos el método string


def __str__(self):
return "{} lanzada en {} con una duración de {} minutos".format(self.titulo,self.lanzam
iento,self.duracion)

# Redefinimos el método length


def __len__(self):
return self.duracion

p = Pelicula("El Padrino",175,1972)
len(p)

Se ha creado la película El Padrino


Se está borrando la película El Padrino
Out[17]: 175

Das könnte Ihnen auch gefallen