Seleccionar la clase a instanciar en tiempo de ejecucion
Andres Moya
Andres.Moya en hispalinux.es
Lun Feb 14 09:16:17 CET 2005
Ernesto Revilla wrote:
> sin recurir al eval, puedes usar getattr para sacarlo de donde esté
> definida esta clase, es decir, si tienes un módulo 'clases' que define
> todas esas clases, puedes hacer algo como esto:
>
> import clases
>
> nombreclase=raw_input('Nombre de la clase')
> clase=getattr(clases,nombreclase)
> instancia=clase()
>
> de todos modos, tienes que saber dónde reside la clase y hacerla
> disponible (importar módulo que lo contenga).
Si el nombre del módulo también es variable, puedes usar la función
__import__:
nombremodulo = raw_input('Nombre del módulo')
nombreclase = raw_input('Nombre de la clase')
modulo = __import__(nombremodulo)
clase = getattr(modulo, nombreclase)
instancia = clase()
--
Andres.Moya en hispalinux.es
Más información sobre la lista de distribución Python-es