[pyar] orden de destruccion de objetos

Ezequiel Brizuela [aka EHB or qlixed] qlixed en gmail.com
Jue Ago 20 19:33:24 ART 2015


Para ambas versiones de python  (2/3) tenes que cumplir la misma premisa:

"Asegurarte de que cualquier clase hija Y de un objeto X, dentro de
Y.__del__() llames al padre X.__del__()."

O sea:

class X (object):
  def __del__(self):
    #Algunas cosas por aqui...
    object.__del__();
    #probablemente mas cosas por aca

class Y(X):
  def __del__(self):
    # Cosas especificas de Y
    X.__del__();
    #MOAR STUFF de Y

Con eso el garbage collector "lockea" correctamente los objetos a borrarse
en el orden correcto... eso siempre y cuando no tengas una referencia
circular dando vueltas.
Mas info en:
https://docs.python.org/2/reference/datamodel.html#object.__del__
https://docs.python.org/3.4/reference/datamodel.html#object.__del__
y:
https://docs.python.org/2.7/faq/programming.html#my-class-defines-del-but-it-is-not-called-when-i-delete-the-object
https://docs.python.org/3.4/faq/programming.html#my-class-defines-del-but-it-is-not-called-when-i-delete-the-object

Y especifico de Py2:
https://docs.python.org/2/using/cmdline.html#cmdoption-R

En Py3 hubo una pequeña mejora respecto el uso de __del__, las refencias y
ciclos, la podes ver en:

https://www.python.org/dev/peps/pep-0442/

Saludillos.

~ QliXeD [ aka EHB ] ~


El 20 de agosto de 2015, 6:18 p. m., Daniel Britos<dbritos en gmail.com>
escribió:

> En el programa de simulación de redes
> https://github.com/dbritos/Network-mesh-emulator para salir del programa
> en el menú tengo la opción salir donde voy matando los objetos en un cierto
> orden pero presionando en X de la ventana se van matando los objetos en
> otro orden dando error  como puedo controlar el orden de destrucción de
> objetos cada objeto tiene la función  __del__
>
> --
>  Daniel Britos
>
>
> _______________________________________________
> pyar mailing list pyar en python.org.ar
> http://listas.python.org.ar/listinfo/pyar
>
> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>
> 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/20150820/1086753d/attachment.html>


More information about the pyar mailing list