Как работает функция 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
⚡️JetTon Games: Exciting New Slots Arrived!
#JetTon#slots
JetTon Games has introduced new enticing slots including Starshine Crystals, Coin Express, and Fighter Pit, each offering unique features and high potential wins. Players can enjoy wilds, risk games, and bonus fights with impressive multipliers. Join the fun at JetTon Games and share your favorites in the comments!
Source: link
@tonlines
🔥1 week after Dragon's Call release and we got:
👾70,000players played
😮x1268max win
In celebration of this we redesign game cover in different art styles🎨, try to guess what those styles are!
#dragonscall#truelab#slots
Our new column - Panda news from Dragon's Call📰
Today we discuss Colombia's tax hike in gambling💔
What do you think of this format?🐼
#news#pandanews#slots#dragonscall
The World of Games Awaits
🎰Polistar Casino invites you to an exciting world of games! 🃏
From classics to the latest releases – our collection is designed to deliver vivid emotions and engaging leisure. Enjoy high-quality graphics and a user-friendly interface.
➡️ Explore the Polistar universe. Simple sign-up here:
[Polistar Casino]
#Sponsorship#CasinoPolistar#CasinoGames#Slots#NewCasino