Gestión de memoria

Francesc Alted faltet en pytables.org
Mar Mar 17 18:33:32 CET 2009


A Tuesday 17 March 2009, heimy escrigué:
> 2009/3/17 Alezeia Gonzalez <Alezeia.Gonzalez en iit.upcomillas.es>:
> > Hola a todos.
> >
> >
> >
> >
> > El problema surge cuando se termina una iteración del bucle y voy a
> > por la siguiente. Antes de volver a empezar, tengo que borrar todo
> > lo que se ha construido dentro del bucle y sólo lo que se ha
> > construido dentro del bucle. Entonces, utilizo el procedimiento
> > “del” para eliminar el objeto “a”. De este modo, elimino “a” y
> > “a.listaA”, pero no todos los objetos de la “claseB” que contiene
> > “a.listaA”. Entonces, decido sobrecargar el procedimiento “del” y
> > le digo que, cuando le pida que elimine “a”, además me borre cada
> > elemento que contenga “a.listaA”. Y aquí está el problema. Me borra
> > las referencias, pero no los objetos. Y no encuentro otra manera de
> > acceder a los objetos que contiene “a.listaA”.
>
> Si los objetos no se borran (que tampoco es automático, los objetos
> se marcan para borrado y depende del garbage collector decidir cuánto
> borrarlos), es que están siendo referenciados desde algún lado.

El borrado sí que es automático para el caso que ya no existan 
referencias al objeto en cuestión.  El recolector de basura sólo entra 
en acción cuando hay referencias cíclicas, y sólo si los objetos 
afectados no sobrecargan el método __del__(), en cuyo caso el 
procedimiento de recolección para ellos se inhibe.

Saludos,

-- 
Francesc Alted
------------ próxima parte ------------
_______________________________________________
Lista de correo Python-es 
http://listas.aditel.org/listinfo/python-es
FAQ: http://listas.aditel.org/faqpyes


Más información sobre la lista de distribución Python-es