Как работает функция 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
Media Molecule 宣布将于9月1日起停止对《Dreams》的在线支持(live support)。玩家依然可以继续创作,分享,游玩游戏内容,但 Media Molecule 将不会再为游戏提供内容更新或举办相关活动。更多细则请查阅原文
https://docs.indreams.me/en-US/whats-happening/news/dreams-support-update
#Dreams
Rereading my Uncommon Dream Log ✨
It's worth writing & it's worth taking time to look up & interpret the meaning.
Been writing only the uncommon ones.
One each year since 2018.
✨ 31st Dec 2018 – Phoenix
✨ 2nd Sep 2019 – Four Lions
✨ 29 Sep 2020 – A pair of baby tortoises & a pair of goldfishes with arowana's colour
Anyone here have uncommon dream log? 🙋♀
#thoughts#justme#dreams
@qw_qwbot@quietworld🍃
Stopped by my friend's place today✨
She has a whole studio! 🎮
Streaming chair, cool lights, microphone — it almost made me want to try too. What do you think, would I make a good streamer? Or better leave it to the pros? 😄
#LunaEverly#Streamer#Friend#Idea#Dreams
🔄🇺🇿 #15 — 4 Kun ichida 3 ish taklifi: Hayotimdagi yangi bosqich
Oradan 4 kun o‘tgach, men topshirgan Birlashgan Arab Amirliklaridagi kompaniyalardan menga qo‘ng‘iroq bo’ldi. Ular intervyu o‘tkazishdi. Tez orada 3 ta ish taklifini oldim. Qanday ish deb qiziqayotgan bo‘lsangiz, offitsiant (waiter)— bu ishga kirish va ketish uchun eng oson yo‘llardan biri.
Bu jarayon menga sabr, qat’iyat va Allohga tavakkul qilishning ahamiyatini yana bir bor eslatdi. Harakat qilmasdan, faqat orzu qilish bilan hech narsaga erishib bo‘lmaydi. Har bir qadam, har bir qaror — bu yangi imkoniyatlarga yo‘l ochadi.
🔄🇬🇧 #15 — 3 Job Offers in 4 Days: A New Chapter Begins
Just three days later, I received a call from the companies I had applied to in the United Arab Emirates. They conducted an interview, and soon after, I received three job offers. Curious about the role? It's a waiter position — one of the easiest entry points into the job market there.
This experience reminded me of the importance of patience, determination, and placing trust in Allah. Simply dreaming without taking action leads nowhere. Every step, every decision opens doors to new opportunities.
#EverythingILived#TrustInAllah#Action#Dua#Dreams#Dubai#NewChapter