Я столкнулся с странной проблемой в Python при использовании глобальных переменных.Понимание глобальной переменной в Python
У меня есть два модуля (файлы): mod1.py
и mod2.py
mod1
пытается изменить глобальную переменную var
, определенный в mod2
. Но var
в mod2 и var
в mod
, кажется, две разные вещи. Таким образом, результат показывает, что такая модификация не работает.
Вот код:
#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 :-(
Любой намек на то, почему это происходит? И как я могу изменить значение val
, определенное в mod2
в mod1
?
Благодаря
+1, но для полного ответа на вопрос вы должны упомянуть, что делает 'global'. Основная проблема OP, по-видимому, является непониманием, когда она полезна. – lvc
хорошая точка, добавил некоторые вещи об этом. – kindall
Спасибо, думаю, я понял. – xiaohan2012