Me encontré con un problema extraño en Python al usar variables globales.Comprender la variable global en Python
que tienen dos módulos (archivos): mod1.py
y mod2.py
mod1
intentos de modificar la variable global var
definido en mod2
. Pero el var
en mod2 y var
en mod
parece ser dos cosas diferentes. Por lo tanto, el resultado muestra que tal modificación no funciona.
Aquí está el código:
#code for mod2.py
global var
var = 1
def fun_of_mod2():
print var
#code for mod1.py
from mod2 import var,fun_of_mod2
global var #commenting out this line yields the same result
var = 2 #I want to modify the value of var defined in mod2
fun_of_mod2() #but it prints: 1 instead of 2. Modification failed :-(
Cualquier pista sobre por qué sucede esto? ¿Y cómo puedo modificar el valor de val
definido en mod2
en mod1
?
Gracias
+1, pero para responder completamente a la pregunta, debe mencionar lo que 'global' hace. El principal problema del PO parece ser un malentendido donde es útil. – lvc
buen punto, agregó algunas cosas sobre eso. – kindall
Gracias, creo que lo entendí. – xiaohan2012