problema con getattr y otras dudas de novato...
Arnau Sanchez
pyarnau en gmail.com
Dom Ene 6 18:52:53 CET 2008
Kike Cabrera escribió:
> def funcion_principal(entero, lista):
> def subfuncion_uno(lista):
> def subfuncion_dos(lista):
> diccionario = {1:'uno', 2:'dos'}
> num = diccionario[entero] # asigno a num el valor de entero en el
> diccionario
> subfuncion_salida = getattr(¿modulo?, "subfuncion_%s" % num) # ¿como puedo
> decir q la funcion está aquí mismo??
> subfuncion_salida(lista) #¿esto funcionaria?
Tienes que usar el diccionario de variables locales que te da el
built-in "locals()":
def f1():
pass
fun = locals()["f1"]
En tu ejemplo, habitualmente podrías:
diccionario = {1: subfuncion_uno, 2: subfuncion_dos}
Pero también puede ser útil hacerlo de forma indirecta, depende del
contexto.
------------ próxima parte ------------
_______________________________________________
Lista de correo Python-es
http://listas.aditel.org/listinfo/python-es
FAQ: http://listas.aditel.org/faqpyes
Más información sobre la lista de distribución Python-es