Podczas korzystania z zmiennych globalnych napotkałem na dziwny problem w języku Python.Opis zmiennej globalnej w języku Python
Mam dwa moduły (pliki): mod1.py
i mod2.py
mod1
próbuje zmodyfikować zmienną globalną var
zdefiniowany w mod2
. Ale var
w mod2 i var
w mod
wydaje się być dwie różne rzeczy. Tak więc wynik pokazuje, że taka modyfikacja nie działa.
Oto kod:
#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 :-(
Wszelkie wskazówkę o tym, dlaczego tak się dzieje? I jak mogę zmienić wartość val
zdefiniowaną w mod2
w mod1
?
Dzięki
+1, ale aby w pełni odpowiedzieć na pytanie, należy wspomnieć o tym, co robi "globalny". Głównym problemem PO wydaje się być nieporozumienie tam, gdzie jest ono użyteczne. – lvc
Dobra uwaga, dodałem kilka rzeczy na ten temat. – kindall
Dzięki, myślę, że zrozumiałem. – xiaohan2012