Almacenar objetos en XML

Andres Moya Andres.Moya en hispalinux.es
Lun Abr 26 12:38:23 CEST 2004


El lun, 26-04-2004 a las 11:34, Chema Cortés escribió:
> El Sábado, 24 de Abril de 2004 15:19, Andres Moya escribió:
> 
>   class Chorra(object):
>     pass
> 
>   ...
>   modulo = __import__(nombre_modulo)
>   instancia = Chorra()
>   instancia.__class__ = modulo.__dict__[nombre_clase]
>   ...
> 
> Lo que le puede ocurrir a este código que propones es que no se inicializa 
> bien la instancia, o sea, no se llama al método __init__ de la clase.

Vale, pero es que yo *quiero* que no se llame al __init__. La instancia
en cuestión es una que ya se inicializó bien en su momento, con su
__init__ correspondiente. En un momento dado, se volcó a un fichero XML
y más tarde se recupera, y la recuperación debe dejarla en un estado
idéntico al que tenía justo antes de volcarse al fichero, no volverla al
estado inicial.


> A ver qué te parece esta solución (sin llegar a emplear "metaclass" :-P):
> 
> class Chorra(object):
>     def __new__(cls, nombre_modulo, nombre_clase, *args, **kw):
>         Cls=__import__(nombre_modulo, globals(), locals(), [nombre_clase])
>         return Cls(*args,**kw)
> 
> instancia = Chorra(nombre_modulo, nombre_clase)

Podría valer si quisiera eso, pero no es el caso. O sea, no se trata de
un nuevo, sino de un restaurar...

-- 
Andres Moya <Andres.Moya en hispalinux.es>

Contra la guerra global permanente.
Foro Social Mundial - Otro mundo es posible.

------------ próxima parte ------------
_______________________________________________
Python-es mailing list
Python-es en aditel.org
http://listas.aditel.org/listinfo/python-es


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