[pyar] Primeros pasos POO: destruyendo objetos

Federico Di Nella federicodinella en gmail.com
Mar Feb 13 13:04:50 ART 2018


Hola Luis,

self es una referencia al objeto no es el objeto en sí. Lo que lográs
usando "del self" es borrar esa referencia del namespace local de la
función.

No podes borrar la instancia del objeto directamente, lo que podes hacer es
borrar las referencias al objeto (no locales, self no cuenta) y después
Python se encarga del resto.

Saludos,
Federico

2018-02-13 15:45 GMT+00:00 Luis Andraschnik <luis.andraschnik en gmail.com>:

> Hola gente
>
> Porqué no funciona esto? Creo un clon de mi persona (más joven) y lo mato,
> pero parece indestructible ...
>
> class Persona():
>     poblacion=0
>     def __init__(self, nombre, edad):
>         self.nombre = nombre
>         self.edad = edad
>         Persona.poblacion += 1
>
>     def morir(self):
>         Persona.poblacion -= 1
>         del self
>
> a = Persona('Luis', 49)
> print(a.nombre, a.edad, a.poblacion)
>
> b = Persona('Clon', 25)
> print(b.nombre, b.edad, b.poblacion)
>
> b.morir()
> print(a.nombre, a.edad, a.poblacion)
> print(b.nombre, b.edad, b.poblacion)
> b.morir()
> b.morir()
> b.morir()
> print(b.nombre, b.edad, b.poblacion)
>
> y la salida es:
>
> Luis 49 1
> Clon 25 2
> Luis 49 1
> Clon 25 1
> Clon 25 -2
>
> Por qué el objeto b sigue existiendo?
>
> _______________________________________________
> Lista de Correo de PyAr - Python Argentina - pyar en python.org.ar
> Sitio web: http://www.python.org.ar/
>
> Para administrar la lista (o desuscribirse) entrar a
> http://listas.python.org.ar/listinfo/pyar
>
> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
> Argentina - http://www.usla.org.ar
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20180213/e8fd4bc9/attachment.html>


Más información sobre la lista de distribución pyar