Articles of scope de

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

__main__ y scope en python

De alguna manera me sorprendió el siguiente comportamiento: def main(): print “%s” % foo if __name__ == “__main__”: foo = “bar” main() es decir, una función de módulo tiene acceso a las variables __main__ en __main__ . ¿Cuál es la explicación para ello?

Usando una variable en una sentencia try, catch, finally sin declararla afuera

Soy bastante nuevo en Python, aquí hay un código que estoy viendo: try: connection = getConnection(database) cursor = connection.cursor() cursor.execute(“some query”) except: log.error(“Problem.”) raise finally: cursor.close() connection.close() ¿Se está limpiando adecuadamente? En otros idiomas en los que he escrito, estoy acostumbrado a hacer algo como esto: connection = None cursor = None try: connection = […]

Dudas sobre el scope de la variable de Python

Posible duplicado: Breve descripción de las reglas de scope de Python Escribí dos funciones simples: # coding: utf-8 def test(): var = 1 def print_var(): print var print_var() print var test() # 1 # 1 def test1(): var = 2 def print_var(): print var var = 3 print_var() print var test1() # raise Exception En […]