Articles of scope de

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 […]

¿Cómo se pueden crear nuevos ámbitos en python?

En muchos idiomas (y lugares) hay una buena práctica de crear ámbitos locales mediante la creación de un bloque como este . void foo() { … Do some stuff … if(TRUE) { char a; int b; … Do some more stuff … } … Do even more stuff … } ¿Cómo puedo implementar esto en […]

“Variable local referenciada antes de la asignación”: ¿solo funciones?

Toma el siguiente código: import something def Foo(): something = something.SomeClass() return something … Al parecer, este código no es válido: UnboundLocalError: local variable ‘something’ referenced before assignment … Como la variable local, something se crea, pero no se asigna, antes de que se evalúe el RHS de = . (Vea, por ejemplo, el comentario […]