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