Articles of global

Referencias locales y globales con UnboundLocalError

No entiendo muy bien por qué el código. def f(): print(s) s = “foo” f() corre perfectamente bien pero def f(): print(s) s = “bar” s = “foo” f() me da UnboundLocalError. Sé que puedo solucionar esto declarando s como una variable global dentro de la función o simplemente pasando un argumento a la función. […]

execfile () no se puede usar de manera confiable para modificar los locales de una función

La documentación de python indica que “execfile () no se puede usar de manera confiable para modificar los locales de una función“. en la página http://docs.python.org/2/library/functions.html#execfile ¿Alguien puede proporcionar más detalles sobre esta statement? La documentación es bastante mínima. La statement parece muy contradictoria con “Si se omiten ambos diccionarios, la expresión se ejecuta en […]

Añadir separadores de registro a todos los accesorios en unittests

Estoy usando el módulo unittest. Necesito separar los registros setUp, setUpClass, teardown y teardownClass de los registros de unittests. La salida debe verse algo como: **************setting things up************** INFO: preparing database INFO: create new users **************end of setup**************** INFO: starting test one INFO: … **************Cleaning things************** INFO: delete users … Intenté anular algunas funciones en […]

Llamar a una variable en una función diferente sin usar global

Estoy tratando de usar una variable / lista en una función que está definida en otra función sin hacerla global. Aquí está mi código: def hi(): hello = [1,2,3] print(“hello”) def bye(hello): print(hello) hi() bye(hello) En este momento me aparece el error de que “hola” en “bye (hola)” no está definido. ¿Cómo puedo resolver esto?

Asignar un valor a la variable de clase es asignarlo a todas las instancias de ese objeto

Tengo una clase con un diccionario. Creo n instancias de números de la clase. Cuando I + = los valores en una clave en ese diccionario se reflejan en cada uno de los objetos que he creado desde ese objeto. ¿Cómo hago que ese diccionario sea único para cada instanciación de esa clase? Así es […]

Accediendo a una variable global de Python a través de archivos

Tengo tres archivos python en un proyecto: ”’lib.py library file that first defines and also accesses a boolean flag”’ vflag = False … def lib_method() global vflag if not vflag: do_something_here ”’app.py main application that sets the boolean flag defined in lib.py”’ import lib lib.vflag = method_that_sets_or_resets_vflag() ”’processor.py does some processing and needs to access […]

Tornado – Variable global de Python

Estoy intentando usar Tornado con SqlAlchemy, necesito pasar el usuario actual de RequestHandler (tornado) a los modelos (SqlAlchemy) en la acción de inserción o actualización. Pero no quiero pasar el valor directamente al modelo, ejemplo: #### RequestHandler POST method… user = Session.query(User).get(1) user.name = “bla, bla, bla…” user.updated_by = self.current_user # don’t use… session.commit() Estoy […]

¿Por qué puedo globalizar una variable no existente en python?

Primero, entiendo completamente lo que significa una statement global y cómo usarla. Ahora, veamos esto: x = 100 def f(): global x global xxx x = 99 return x print(f()) # >>> 99 print(x) # >>> 99 Puede ver que al usar global x , cambié con éxito el valor de x en el entorno […]

Gestión global de excepciones en Google App Engine

En lugar de encapsular todo mi código en un bloque try {} excepto {}, ¿hay alguna forma de capturar excepciones globalmente? Básicamente, estoy buscando una manera de tener un controlador de excepciones global que maneje todas las excepciones no manejadas en la aplicación my python escrita para el motor de aplicaciones de Google.

¿No puede cambiar las variables globales en una función a través de una statement exec ()?

¿Por qué no puedo cambiar las variables globales desde dentro de una función, usando exec ()? Funciona bien cuando la sentencia de asignación está fuera de exec (). Aquí hay un ejemplo de mi problema: >>> myvar = ‘prueba’ >>> def myfunc (): … myvar global … exec (‘myvar = “cambiado!”‘) … imprimir (myvar) … […]