[pyar] Llevar un registro de las instancias de una clase

Luis I. Facciolo lifacciolo en gmail.com
Mar Feb 1 19:58:14 ART 2011


No se si es el comportamiento que esperas, pero, si haces varias instancias
a las cuales les pasas siempre 'a', vas a tener mal llevada la cuenta de
instancias.

O sea:

>>> class Test:
...   reg = {}
...   def __init__(self, name):
...       Test.reg[name] = self
...       self.name = name
...
>>> a = Test('A')
>>> print a.reg
{'A': <__main__.Test instance at 0x027D79B8>}
>>> b = Test('B')
>>> print a.reg
{'A': <__main__.Test instance at 0x027D79B8>, 'B': <__main__.Test instance
at 0x027D7A08>}
>>> print b.reg
{'A': <__main__.Test instance at 0x027D79B8>, 'B': <__main__.Test instance
at 0x027D7A08>}
>>> z = Test('A')
>>> print b.reg
{'A': <__main__.Test instance at 0x027D79E0>, 'B': <__main__.Test instance
at 0x027D7A08>}

Por ahi te serviria mas no pasarle un name y en el __init__() de la clase
generar un hash y usar eso como llave en reg (tal vez con uuid o algo por el
estilo) y que se lo guarde en un self.name, cosa de que en el __del__()
puedas hacer que remueva esa llave del diccionario.
Y asi tambien te desligas de la responsabilidad de pasarle un name en el
constructor cada vez que instancias, y que se encargue la clase misma de
eso.

Espero haberme expresado bien, soy medio lelo a veces.
Saludos!

[image: algo]
Luis I. Facciolo
Arquitectura - ING. de operaciones | Tecnología
Tel (+5411) 5295-3948
Cel (+54911) 3646-2931
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20110201/2450aad7/attachment.html>


More information about the pyar mailing list