@mo
Если первый вариант был таким
from main import rmq_connection
То новые значения rmq_connection не будут видны.
import main
....
print(main.rmq_connection)
Должен видеть новое значение.
Top-level
7 comments
@mo интересно, но не понятно, почему он видит старое значение. Я стараюсь такие ситуации избегать или созданием объекта, который хранит состояние и передается кому надо, или избежанием присваивания Вместо Что-то типа x = [] Список это просто пример мутабельной структуры. @dima скорее всего, я на 90% уверена — он не может понять, что package.main это главный модуль. Поэтому он его импортирует как обычно, но функция инициализации при этом не вызывается @dima т.е там тупо два разных модуля main. Один как package.main, второй как __main__ |
@dima а хуй там, он даже так видит значение до инициализации :)
и да, оно там не меняется. Оно один раз лениво инициализируется, и уже после этого используется в нижележащих модулях
Просто для его инициализации нужен IO, а используется оно одно на всю программу (потому что установка соединения это относительно затратно, и поэтому в RabbitMQ есть свой уровень мультиплексирования — каналы)