[Python-es] Clase de Clases

Oswaldo listas en soft-com.es
Lun Ene 21 18:35:07 CET 2013


El 21/01/2013 17:05, Alvaro Manrique escribió:
> Estoy probando esto...
>
> http://pastebin.com/asbyumjW
>
> Sin embargo tengo el mismo resultado, pero que me dicen... Voy por buen
> camino??
>
>

Como ya te han dicho para que cada instancia de la clase hija tenga sus 
instancias independientes de miembro tienes que crearlas en el __init__ 
(No se ahora mismo si con metaclases se podría conseguir también).

Y si lo que quieres en simplicidad a la hora de definir las clases hijas 
te lo tendrás que montar para hacer una definición que utilice el init 
de la base posteriormente. Por ejemplo:


 >>> class base(object):
...     atributos = {}  # diccionario {"nombreatributo": clase,}
...     def __init__(self):
...         for k in self.atributos:
...             setattr(self, k, self.atributos[k]())
...
 >>> class hija(base):
...     atributos = {
...         "Miembro1":     Miembro,
...         "Miembro2":     Miembro,
...         }
...
 >>> h1 = hija()
Inicio de la clase Miembro
Inicio de la clase Miembro
 >>> h2 = hija()
Inicio de la clase Miembro
Inicio de la clase Miembro
 >>>
 >>> print id(h1.Miembro1)
31243504
 >>> print id(h2.Miembro1)
31243664
 >>>
 >>> del h1
Fin de la clase Miembro
Fin de la clase Miembro
 >>> del h2
Fin de la clase Miembro
Fin de la clase Miembro
 >>>



-- 
Oswaldo


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