Как работает функция 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
International Court of Justice (#ICJ ) has finally had enough of #Israelis and their #genocidal actions against the #Palestinians of Gaza
It has finally decided to do what #SouthAfrica demanded it should have done months ago:
• Demand that the #ZioNazis halt their #genocidal slaughter of innocents in #Gaza
and that
• Israel must ensure access to Gaza for UN genocide investigators
UN rapporteur: Israel will not stop ‘this madness’ until we make it stop
Francesca #Albanese, the #UN’s special #rapporteur on #Palestine on Saturday urged member states to impose sanctions on #Israel along with an arms embargo until it stops “this madness,”
“Let’s be clear. As the #ICJ orders Israel to stop its offensive in #Rafah, #Israel instead intensifies its attacks on it,”
The International Court of Justice (#ICJ) in its latest ruling ordered Israel to immediately halt its military offensive in #Rafah, a city in southern Gaza where more than 1.5 million displaced Palestinians had sought refuge.
“The news I am receiving from the people trapped therein are terrifying,
Be sure: Israel will not stop this madness until WE make it stop,”
Albanese urged all UN member states to impose #sanctions, arms #embargo and suspend diplomatic and political relations with Israel until it ceases its #genocidal assault.
A legal group submitted to the #UN the most thorough legal analysis of Israel's actions concluding it is committing genocide against Palestinians in Gaza.
This is probably the most complete report to date that demonstrates how #Israel's attacks on #Palestinians in #Gaza meet the legal definition of #genocide.
It's a 100-page report, by legal experts at #Boston University School of Law, #Cornell Law School, #Yale Law School, and others.
The report's conclusion:
"Israel has committed the #genocidal acts of #killing, causing serious harm to, and inflicting conditions of life calculated to bring about the physical #destruction of #Palestinians in #Gaza, a protected group that forms a substantial part of the Palestinian people.
These #genocidal acts have been motivated by the requisite genocidal intent, as evidenced in this report by the statements of #Israeli leaders, the character of the State and its forces’ conduct against and relating to Palestinians in Gaza, and the direct nexus between them."