У меня есть эти 4 модуля globals.pyИспользование глобальных переменных в Python модулей
globvara = "a"
mod1.py
from globals import *
print globvara
выход: а
mod2.py
from mod1 import *
def changegv(newval1):
#global globvara
globvara = newval1
def usechangegv(newval2):
changegv(newval2)
и mod3.py
from mod2 import *
usechangegv("b")
print globvara
выход:
Я задаюсь вопросом, почему globalvar не меняется в модуле 2. Я что-то в глобальных переменных отсутствует. Даже если я раскомментирую глобальную строку globvara, я получаю тот же результат. Где ошибка?
Из интереса , вы делаете это как эксперимент, чтобы ознакомиться с тем, как работает область действия на Python или у вас есть такой случай в программе, которую вы используете? iting? – s16h
Я работаю над большим проектом, и я упростил его. – Yannis
Связанный: http://stackoverflow.com/questions/25630386/how-to-use-a-dictionary-loaded-from-one-module-into-the-main-program-from-anothe (но не diff, Думаю, и потому, что этот вопрос хочет иметь возможность _assign_ в 'globvara' в каждом модуле, а не просто обращаться к нему, и потому что он не спрашивает, как« обойти »эту проблему, просто спрашивая, что происходит). – abarnert