Contador de referencias.

Chema Cortés ch3m4 en ch3m4.org
Sab Mayo 8 12:12:46 CEST 2004


Mensaje citado por Pepe aracil <pepe en diselpro.com>:

> ¿Sabe alguien como puedo saber el numero de referencias que apuntan a la
> misma
> instancia de una clase?
>
> Esque no se me ejecuta el  __del__() de una instancia y quero localizar donde
> está el problema.

Por lo general, es mala idea tener control del momento exacto cuando se
"destruye" un objeto. Podría ocurrir que ya no haya referencias al objeto y que
sin embargo el gc todavía no haya pasado a "recoger la basura" para destruirlo.

Para saber el número de referencias a un objeto mira gc.get_referrers . Sólo te
dará los contenedores que tienen alguna referencias al objeto (podrían ser más
de una referencia por contenedor), pero quizás te sirva para saber dónde tienes
las referencias rebeldes.

Según lo que quieras hacer, puede que te sirva de algo un mensaje sobre
programación orientada a eventos que mandé hace dos meses donde usaba
referencias "débiles" para evitar problemas con la destrucción de objetos:
http://listas.aditel.org/archivos/python-es/2004-March/004159.html




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