@mo интересно, но не понятно, почему он видит старое значение.
Я стараюсь такие ситуации избегать или созданием объекта, который хранит состояние и передается кому надо, или избежанием присваивания
Вместо
def f():
global x = 1
Что-то типа
x = []
def f();
x.append(1)
Список это просто пример мутабельной структуры.
@dima скорее всего, я на 90% уверена — он не может понять, что package.main это главный модуль. Поэтому он его импортирует как обычно, но функция инициализации при этом не вызывается