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