Binding de las variables libres de funciones

Chema Cortes pych3m4 en gmail.com
Lun Nov 10 10:46:46 CET 2008


El día 7 de noviembre de 2008 17:17, German Kruszewski
<germank en gmail.com> escribió:
> Muchas gracias a todos por la ayuda. Finalmente pude hacerlo andar
> utilizando el método de recubrir la función con otra función tal como me
> explicaba Arnau o se lee en una de las respuestas en la página que mandó

La solución es envolver la función que generas con una "cláusula"
construyendo un generador de funciones, algo tan sencillo como ésto:

def genf(i):
  def f():
    return "Ésta es la función %d"%i
  return f

for i in range(1,3):
  genf(i)()


...y si lo que quieres es que las funciones se llamen de una forma específica:


for i in range(1,4):
  globals()["f_%d"%i]=genf(i)

f_1()
f_2()
f_3()
_______________________________________________
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