Crear una instancia

Arnau Sanchez arnau en ehas.org
Dom Jun 25 11:56:23 CEST 2006



Oscar Curero escribió:
> Hola,
> 
> Tengo lo siguiente:
> 
> class QUERY_IS_ACTIVE_BACKEND:
> 	def __init__(self,test):
> 	    print "test"
> 
> command="QUERY_IS_ACTIVE_BACKEND"
> instancia=command()
> 
> Traceback (most recent call last):
>   File "<stdin>", line 1, in ?
> TypeError: 'str' object is not callable
> 
> ¿Como puede crear una instancia por su nombre y no por la referencia? (algo 
> parecido a lo que se puede hacer con la función getattr con los métodos)

yo para eso uso locals() o globals(), según el caso. En tu ejemplo:

instancia = locals()[command]("parametro")

por cierto, en la función "init" intuyo que quieres imprimir el 
parámetro pasado, así que sería 'print test' (no "test").

salud




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