Как работает функция 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
🌎 Vampire squid live more than 2,000 meters below the ocean’s surface, where sunlight never reaches. This deep-sea animal uses long, webbed arms and blue bioluminescent light to confuse predators. Vampire squid can survive with very little oxygen, thriving in one of the planet’s most extreme habitats. ✨
#oceanlife⚡#deepsea⚡#animals
👉subscribe Interesting Planet
👉more Channels
🌎 Giant isopods, distant relatives of the common pillbug, inhabit the deep ocean at depths exceeding 500 meters. These armored scavengers can reach up to 50 centimeters in length, surviving on the remains of dead sea animals that sink to the seafloor. ✨
#oceanlife⚡#deepsea⚡#biodiversity
👉subscribe Interesting Planet
🌎 The Pompeii worm thrives on underwater volcanoes, enduring temperatures near 80°C. Its furry back hosts heat-loving bacteria, forming a living protective shield in extreme ocean heat. ✨
#oceanlife⚡#extremophiles⚡#discovery
👉subscribe Interesting Planet
🪐 One of the most surprising places where scientists think life could exist is Jupiter’s moon Ganymede, which hides a deep, salty ocean beneath its thick icy crust. Data from the Galileo spacecraft revealed Ganymede’s magnetic field wobbles in a way best explained by a vast liquid ocean, making this giant moon a real candidate for life far from the warmth of the Sun. ✨
#Ganymede⚡#oceanlife⚡#habitableworlds⚡#nasa⚡#galaxy⚡#stars⚡#astronomy⚡#universe⚡#cosmos⚡#space
👉subscribe Universe Mysteries
👉more Channels
🐙Oscar-Winning My Octopus Teacher – A Deep Dive into Unlikely Friendship
🇿🇦 Burnt out and emotionally drained, filmmaker Craig Foster found healing in the ocean off Cape Town.
Over eight years, he formed an extraordinary bond with a wild octopus — a creature that became his unexpected teacher.
🎬My Octopus Teacher (2021) is a beautifully shot documentary about connection, balance, and rediscovering the natural world.
🏆 The film won the Oscar and BAFTA for Best Documentary Feature — a must-watch for nature lovers and seekers of meaning.
📽Official trailer (with Russian subtitles):
🔗https://www.youtube.com/watch?v=yP-dgd852Ro
#MyOctopusTeacher#Documentary#NatureFilm#OceanLife#CapeTown#SouthAfrica#OscarWinner#BAFTA#Wildlife#Diving#Mustwatch