Llamar una funcion desde variable
Andres Moya
Andres.Moya en hispalinux.es
Mie Dic 22 13:16:48 CET 2004
Oscar Merchan wrote:
>Buenas a todos.
>
>Ya se que lo voy a preguntar es un poco raro, y ni tan siquiera se si ahi alguna forma de hacerlo.
>
>
En otros lenguajes sí es raro, pero en python es de lo más normal.
>Bueno haya va, quisiera poder ejecutar una funcion a raiz del valor de una variable, me esplico con un ejemplo .-
>
> def imprime(): <-- Fundion
> print 'chorrada'
>
> prueba = 'imprime' <-- Variable, cuyo valor es el mismo nombre que la funcion
>
> prueba() <-- Ya se que esto no funciona pero es para que veais lo que pretendo
>
>
En python una función es un objeto como otro cualquiera, y puede ser
asignada a una variable y luego llamada:
def imprime():
print 'chorrada'
prueba = imprime
prueba()
Si lo que quieres es acceder a la función a partir de un string con su
nombre, puedes buscarla en el diccionario globals(), si es global o ha
sido importada con un "from xxx import":
prueba = globals()["imprime"]
prueba()
También se puede encontrar de otras maneras.
--
Andres.Moya en hispalinux.es
Más información sobre la lista de distribución Python-es