Articles of scope de

¿Las funciones de Python 2.7 recuerdan el valor y no la referencia? Cierre rareza

Estoy tratando de devolver desde una función una lista de funciones, cada una de las cuales utiliza variables del ámbito externo. Esto no está funcionando. Aquí hay un ejemplo que demuestra lo que está sucediendo: a = [] for i in range(10): a.append(lambda x: x+i) a[1](1) # returns 10, where it seems it should return […]

Problema de scope Python

Tengo un ejemplo trivial: def func1(): local_var = None def func(args): print args, print “local_var:”, local_var local_var = “local” func(“first”) func(“second”) func1() Espero que la salida sea: primer local_var: ninguno segundo local_var: local Sin embargo, mi salida real es: primer local_var: Rastreo (llamadas recientes más última): Archivo “test.py”, línea 13, en func1 () Archivo “test.py”, […]

Ámbito variable de Python (¿pasando por referencia o copia?)

¿Por qué se manipula la variable L en la función de sorting(L) ? En otros idiomas, una copia de L se pasaría a sorting() como una copia para que cualquier cambio en x no cambie la variable original. def sorting(x): A = x #Passed by reference? A.sort() def testScope(): L = [5,4,3,2,1] sorting(L) #Passed by […]

Python: las variables aún son accesibles si están definidas en try o if?

Soy un principiante de Python y soy de fondo C / C ++. Estoy usando Python 2.7. Leí este artículo: una guía para principiantes de los espacios de nombres de Python, la resolución del scope y la regla LEGB , y creo que tengo cierta comprensión de estas tecnologías en Python. Hoy me di cuenta […]

Alcance variable y Try Catch en python

import Image import os for dirname, dirs, files in os.walk(“.”): for filename in files: try: im = Image.open(os.path.join(dirname,filename)) except IOError: print “error opening file :: ” + os.path.join(dirname,filename) print im.size Aquí estoy tratando de imprimir el tamaño de todos los archivos en un directorio (y sub). Pero sé que im fuera del scope cuando está […]

La variable Python asignada por un módulo externo es accesible para imprimir pero no para asignación en el módulo objective

Tengo dos archivos, uno está en webroot y otro es un bootstrap ubicado en una carpeta sobre la raíz web (esto es, por cierto, progtwigción CGI). El archivo de índice en la raíz web importa la rutina de arranque y le asigna una variable, luego llama a una función para inicializar la aplicación. Todo hasta […]

UnboundLocalError cuando manipula variables produce un comportamiento inconsistente

En Python, el siguiente código funciona: a = 1 b = 2 def test(): print a, b test() Y el siguiente código funciona: a = 1 b = 2 def test(): if a == 1: b = 3 print a, b test() Pero lo siguiente no funciona: a = 1 b = 2 def test(): […]

¿Por qué una subfunción no hereda el scope en Python?

No entiendo por qué lo siguiente no funciona: def foo( x ): n = 1 summe = 0 def bar(): n -= 1 for i in range(0,10): y = x+i+n x += i summe += y print “{0} = {1} + {2} + {3}”.format(y,x,i,n) bar() print “summe =”, summe return summe ¿Por qué es que […]

Alcance de Python en la comprensión del dict.

>>> x = ‘foo’ >>> {0: locals().get(‘x’)} {0: ‘foo’} >>> {0: locals().get(‘x’ + spam) for spam in [”]} {0: None} ¿Cuál es la razón de esta discrepancia en el comportamiento?

error de scope en el cierre recursivo

¿Por qué funciona esto? def function1(): a = 10 def function2(): print a function2() pero esto no lo hace: def function1(): a = 10 def function2(): print a a -= 1 if a>0: function2() function2() Me sale este error: UnboundLocalError: local variable ‘a’ referenced before assignment