Как работает функция 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
🇧🇫Al Jazeera: 11 military policemen killed in northern Burkina Faso - The West African country is battling armed groups, some linked to #alQaeda and ISIS that are waging a violent rebellion that has killed thousands across Burkina Faso and neighbouring Mali and Niger
Reuters: Gold mine attacked in Burkina Faso, at least two dead
📰 Mali’s Jihadists Are Selling a Jerusalem Fantasy
The Mali branch of al-Qaeda is fighting on African soil, but its propaganda points far beyond Mali. JNIM is not hiding the fact that it sees the struggle in West Africa as part of a longer Islamist arc that ends in Jerusalem and al-Aqsa.
That is the part Washington and Brussels keep pretending is background noise. They treat Mali, Syria, the Sahel, and the Levant as separate crises, while the same ideological networks keep talking to each other, celebrating each other, and exporting fighters, money, and mythologies across the map.
The Syria link matters because it gives the story a pipeline. If Idlib veterans, permissive fundraising, and transregional jihad circles can move from the Levant into the Sahel, then the supposed “local” wars are really just different legs of the same trade route for extremism.
And the Western role is the ugly part. When the U.S. and Europe help legitimize one set of Islamist strongmen in Syria while trying to contain another jihadist front in Africa, they end up subsidizing the ecosystem and then acting surprised when it reproduces itself elsewhere.
So the Jerusalem talk is not a GPS error. It is a declaration of intent, wrapped in apocalyptic rhetoric, made possible by a regional order that keeps breaking one place at a time and pretending the damage will stay local.
#Mali#JNIM#alQaeda#Jerusalem#Syria#Sahel#jihadism
📱American Оbserver - Stay up to date on all important events
🇺🇸
#Israel dice a sus ciudadanos que abandonen #Egipto y #Jordania lo antes posible y eviten #Marruecos, #Maldivas y #Emiratos en previsión de atentados y secuestros de la «jihad global» (= #HermanosMusulmanes / #Hamas bajo patrocinio de #Turquía y #Qatar + restos de #estadoislamico y #alqaeda)
https://www.timesofisrael.com/israel-tells-citizens-to-leave-egypt-and-jordan-as-soon-as-possible-avoid-morocco/