Как работает функция 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
🎉 Exciting Partnership Announcement
We're thrilled to introduce our first official partner for the SingSing SocialFi SDK: Cowtopia🐮!
Cowtopia, an innovative farming simulation game, will be the first to integrate our powerful SocialFi SDK. This collaboration marks a significant milestone as we prepare to revolutionize the Telegram mini-app ecosystem.
Stay tuned and see how Cowtopia will utilize our SDK to create an immersive and socially connected gaming experience.
Read more and open treasure at: X Post
#SingSingSDK#Cowtopia#TelegramGaming#SocialFi#FarmingSimulator#ComingSoon
🔥🎉 Prepare yourself for an unparalleled gaming experience with TonAge! 🎮
💥
😀
💯Bid farewell to losses and say hello to an assured 100% Return to Player (RTP) in TonAge! 💰
✨
😀⭐️ Launch into a world of electrifying gameplay, where each spin, move, and quest is brimming with exhilarating excitement!
💥📍
⚡️
😀 Driven by blockchain technology, TonAge guarantees fair play and transparent outcomes, ensuring you can game with absolute peace of mind! 😎
😀
💎
✨ Unlock legendary treasures, conquer epic challenges, and witness your virtual victories transform into real-world value with the TON cryptocurrency! It's the ultimate gaming revolution!
🎁
💎
🤝⭐️ Join a vibrant community of gamers, strategists, and treasure seekers from all corners of the globe. Share tips, challenge friends, and compete for the top position on the leaderboard! 📍
🎁Don't miss out on this groundbreaking opportunity! Embark on an adventure that guarantees 100% RTP and endless thrills!
💎https://bit.ly/3SlL8fq
#TonAge#TelegramGaming#100PercentRTP#BlockchainGaming#EarnTON