[Python-es] scope de variables

Arnau Sanchez pyarnau en gmail.com
Vie Jun 18 21:27:19 CEST 2010


On Fri, 18 Jun 2010 20:04:41 +0200 Chema Cortes wrote:

> Mi consejo es que te crees un diccionario para mantener el ámbito de
> evaluación de tus funciones y pases este diccionario como argumento al
> eval. 

Otra cosa que se suele/puede hacer es "guardar" las variables en los
argumentos de la función:

     def g(z=z):
         print eval("z")

Esta idea también se aplica cuando queremos asegurarnos que la función
anidada ve el valor de la variable en el momento de la definición y
no de la llamada (que es lo que sucede por defecto, ya que son
"variables libres").

Apartado de la documentación donde se explica el tema en detalle:

http://docs.python.org/reference/executionmodel.html#interaction-with-dynamic-features


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