Как работает функция 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
🌎 While mapping the ocean floor in 1947, researchers aboard HMS Challenger discovered the Mid-Atlantic Ridge, revealing Earth's largest mountain range hidden underwater. This seismic finding triggered the theory of plate tectonics—explaining how continents drift. The ridge stretches for over 16,000 kilometers beneath the Atlantic Ocean. ✨
#discovery⚡#geology⚡#oceanography
👉subscribe Interesting Planet
👉more Channels
🌎 Far beneath the Pacific Ocean, "deep-sea brine pools" exist—pockets of super-salty water heavier than seawater itself. These underwater lakes create eerily defined shorelines and host bizarre microbes that thrive in conditions lethal to most ocean life. ✨
#oceanography⚡#extremophiles⚡#deepsea
👉subscribe Interesting Planet
🌎 Coral reefs provide another remarkable natural record of Earth’s past. As corals grow, they form bands in their skeletons that reflect seasonal changes in water temperature, chemistry, and even extreme weather events. Some coral cores reveal ocean conditions dating back several centuries. ✨
#coral⚡#reefs⚡#paleoclimate⚡#oceanography
👉subscribe Interesting Planet
👉more Channels
🚢ВМС США присвоили имя новому исследовательскому судну “Robert Ballard”.
ВМС США официально провели церемонию имянаречения нового океанографического исследовательского судна класса Pathfinder - “USNS Robert Ballard” (T-AGS).
Судно названо в честь доктора Роберта Балларда — океанографа и бывшего офицера ВМС США, известного открытием места гибели лайнера “Titanic”.
Традиционно суда этого класса получают имена выдающихся исследователей и гидрографов.
“USNS Robert Ballard” станет восьмым и последним судном серии Pathfinder и будет эксплуатироваться Military Sealift Command.
Строительство ведётся на верфи Bollinger Mississippi Shipbuilding (Паскагула).
После ввода в строй судно будет оснащено многолучевыми эхолотами, буксируемыми сонарами, многоцелевыми кранами и гидрографическими катерами для работы на глубинах от 10 до 4 000 метров. Основная задача — гидрографическая съёмка и сбор данных для обеспечения безопасности навигации и военно-морских операций.
Для морского сектора это подтверждение стратегической роли океанографических исследований в военной и гражданской навигационной инфраструктуре.
📌United States Navy (US Navy) — военно-морские силы США, основаны в 1775 году; являются частью Министерства обороны США и финансируются федеральным бюджетом.
#USNavy#Hydrography#ResearchVessel#Oceanography#MaritimeSecurity