Как работает функция reload()?
Эта функция нужна для того, чтобы перезагрузить изменившийся код из py-файла без рестарта интерпретатора.
Дело в том, что любой импортированный модуль при повторном импорте не будет перечитывать файл. Функция импорта вернёт уже загруженный в память объект модуля. Чтобы обновить код, нужно либо перезапустить всю программу, либо использовать функцию reload()
from importlib import reload
reload(my_module)
🔸 Функция reload() принимает в качестве аргумента только объект модуля или пакета. Она не может перезагрузить класс или функцию. Только весь файл целиком!
🔸 Перезагрузка пакета перезагрузит только его файл __init__.py, если он есть. Но не вложенные модули.
🔸Она не может перезагрузить ранее не импортированный модуль.
🔸При вызове функция reload() перечитывает и перекомпилирует код в файле, создавая новые объекты. После создания новых объектов перезаписывается ранее созданный неймспейс этого модуля.
Это значит, что если где-то этот модуль импортирован через import и обращение к атрибутам происходит через неймспейс (имя) модуля, то такие атрибуты обновятся.
Если какие-либо объекты из этого модуля импортированы через from то они будут ссылаться на старые объекты.
Напишем простой модуль
# mymodule.py
x = 1
Теперь импортируем модуль и отдельно переменную х из модуля
>>> import mymodule
>>> from mymodule import x
>>> print(mymodule.x)
1
>>> print(x)
1
Не перезапуская интерпретатор вносим изменения в модуль
# mymodule.py
x = 2
Делаем перезагрузку модуля и проверяем х ещё раз
>>> reload(mymodule)
>>> print(mymodule.x)
2
>>> print(x)
1
То же самое будет если присвоить любой объект переменной (даже словарь или список)
Повторный импорт обновляет значение
>>> from mymodule import x
>>> print(x)
2
🔸Созданные инстансы классов не обновятся после перезагрузки модуля. Их придётся пересоздать.
#tricks#basic
📉Quebec considers slashing permanent immigration targets to 25,000
Quebec is considering a significant reduction in its annual permanent immigration targets, potentially as low as 25,000 people.
This marks a sharp decrease from the projected 64,000 for 2025. Immigration Minister Jean-François Roberge outlined three potential scenarios: 25,000, 35,000, or 45,000 immigrants annually. The move is driven by rising unemployment, a worsening housing crisis, and concerns over preserving the French language in Quebec.
Additionally, the province aims to cut the number of temporary immigrants under federal programs from over 400,000 to 200,000.
#Quebec#immigration
🍁Maple Chronicles
Quebec premier says Ottawa should forcibly relocate half of asylum seekers
Premier François Legault has made immigration a major focus of his visit to Paris, demanding that the federal government force asylum seekers in Quebec to move elsewhere, including people who have already settled in the province.
Half of the would-be refugees currently in Quebec should be transferred to other provinces, he told reporters on Wednesday at the offices of the Quebec delegation in Paris.
Legault’s latest remarks follow similar comments on Tuesday, when he said his government has asked Ottawa to create waiting zones for asylum seekers entering the country, similar to a system that has existed for decades in France.
#Quebec#immigration
🍁Maple Chronicles
The flag of Quebec is blue with a white cross and four white fleur-de-lis. It was officially adopted on January 21, 1948. The blue means the sky, the white cross means faith, and the fleur-de-lis are old French symbols.
The flag is a reference to Quebec’s French history and culture. 🇨🇦✝️⚜️
[Read more]
@googlefactss#Quebec#Flag#History#Symbols
📌Glencore приостанавливает инвестиции в медеплавильный завод в Квебеке из-за экологической неопределенности🌍
Во вторник швейцарская сырьевая компания Glencore объявила о временной приостановке планируемых инвестиций на сумму $300 млн в медеплавильный завод Rouyn-Noranda Horne в Квебеке, Канада. Завод является крупнейшим предприятием по производству меди в стране и одним из ведущих медных заводов в Северной Америке.
🔥 Основная причина приостановки — отсутствие гарантий соблюдения экологических нормативов, установленных провинцией Квебек. Glencore планировала инвестировать почти $1 млрд в модернизацию завода и сокращение вредных выбросов мышьяка, но переговоры с властями не увенчались успехом.
📈 Возможные последствия:
🔁 Без инвестиций и модернизации завод Rouyn-Noranda Horne перестанет соответствовать экологическим нормам Квебека с марта 2027 года.
🔁 Угроза закрытия завода создаст неопределенность для местной экономики и тысячи рабочих мест.
🔁 Будущее медного аффинажного завода Glencore в Монреале также ставится под сомнение.
💡 Glencore заявила, что продолжение инвестиций невозможно без твердых гарантий властей провинции о соблюдении экологических стандартов и сохранении нормальной деятельности завода в долгосрочной перспективе.
👏Власти Квебека пока не прокомментировали ситуацию, но компания ожидает скорейшей реакции и диалога с правительством.
🤑Следите за нашими обновлениями, чтобы оставаться в курсе последних изменений в экономике и политике!
#glencore#quebec#environmentalstandards#coppermaking#metalindustry#ecologicalissues