Я столкнулся с некоторым странным поведением в отношении того, как Python обрабатывает глобальные (модульные) переменные и ключевое слово global
.
Модуль 1:
g = None
def set_g_up():
global g
g = "foo"
set_g_up()
print g
Модуль 2:
from module_1 import *
set_g_up()
print g
Модуль 1 выводит, как и ожидалось, "foo"
.
Модуль 2 выводит None
!
Какая? Это один и тот же объект! Или, по крайней мере, я ожидаю, что это будет.