Articles of variables globales de

¿Qué significa “variables globales son malas”?

Así que puedo leer desde una variable global. def f() : print x Y también puedo asignarlo. def g() global x x = 3 Cuando la gente dice que “las variables globales son malas”, ¿significa que tanto la lectura como la asignación son malas, o simplemente la asignación es mala? (Mi impresión es que la […]

Por qué algunas variables de Python se mantienen globales, mientras que otras requieren una definición como global

Me cuesta un poco entender por qué algunas variables son locales y otras globales. Por ejemplo, cuando bash esto: from random import randint score = 0 choice_index_map = {“a”: 0, “b”: 1, “c”: 2, “d”: 3} questions = [ “What is the answer for this sample question?”, “Answers where 1 is a, 2 is b, […]

Anular globalmente en función importada de otro módulo

Digamos que tengo dos módulos: a.py value = 3 def x() return value b.py from a import x value = 4 Mi objective es usar la funcionalidad de ax en b , pero cambiar el valor devuelto por la función. Específicamente, el value buscará con a como fuente de nombres globales incluso cuando ejecuto bx() […]

Cómo almacenar la configuración de la aplicación en módulos

Recibí un proyecto del desarrollador que dejó nuestra empresa. No es demasiado complejo, pero no se ve muy bien. Así que aquí está la pregunta: la aplicación tiene algunos módulos y uno es la “configuración” que almacena alguna aplicación. opciones (no todas las opciones posibles, digamos solo dos: foo y bar ). Cuando se inicia […]

Deshabilitar la búsqueda de variables globales en Python

En resumen, la pregunta: ¿hay una manera de evitar que Python busque variables fuera del scope actual? Detalles: Python busca definiciones de variables en los ámbitos externos si no están definidas en el ámbito actual. Por lo tanto, un código como este puede romperse cuando no se tiene cuidado durante la refactorización: def line(x, a, […]

Variables globales y multiproceso de Python

Posible duplicado: Las actualizaciones de variables globales de multiproceso de Python no se devuelven al padre Estoy usando una computadora con muchos núcleos y para obtener beneficios de rendimiento realmente debería usar más de uno. Sin embargo, estoy confundido por qué estos bits de código no hacen lo que espero: from multiprocessing import Process var […]

¿Cómo cambio la variable de la función de anidamiento en la función anidada?

Me gustaría tener una variable definida en la función de anidación que se modificará en la función anidada, algo así como def nesting(): count = 0 def nested(): count += 1 for i in range(10): nested() print count Cuando se llama a la función de anidar, deseo que imprima 10, pero genera UnboundLocalError. La palabra […]

Modificando variable global con el mismo nombre que variable local

Supongamos que tengo una variable global a . Y dentro de una definición de función, también tenemos una variable local llamada a . ¿Hay alguna forma de asignar el valor de la variable global al de la variable local? a = ‘foo’ def my_func(a = ‘bar’): # how to set global a to value of […]

Cómo evitar variables globales.

Cuando leo documentación de python y varias listas de correo, siempre leo algo que parece un dogma. Las variables globales deben ser evitadas como el infierno, son de diseño pobre … OK, ¿por qué no? Pero hay una situación de la vida real en la que no sé cómo evitar ese patrón. Digamos que tengo […]

Rendimiento de acceder a las variables de clase en Python

Me pregunto si hay alguna diferencia en el rendimiento al acceder a una variable de clase (un dict) dentro de un método de la misma clase usando: self.class_variable_dict.add(some_key, some_value) y ClassName.class_variable_dict.add(some_key, some_value) obviamente, ambos funcionarán siempre que no haya una variable de instancia con el mismo nombre, pero ¿hay algún motivo de uso / razón […]