Переменная в python - это имя в некотором пространстве имен, привязанном к объекту. Если бы я написал
x = "foo"
y = x
x = "bar"
, мы бы не ожидали, что y
будет "баром". Ведь это уникальная переменная, которой объект из x
.
from global_vars import x
похож. Теперь у нас есть две переменные (1) global_vars.x
в пространстве имен global_vars и (2) отдельный и уникальный x
в пространстве имен локального модуля. Эквивалентный импорт показывает это более драматично
from global_vars import x as a_different_x
Если вы хотите поделиться x
, даже после обновления, продолжайте ссылаться на него в исходном пространстве имен
import global_vars
#global_vars
global_vars.x=0
def update(y):
global_vars.x+=y
print