Как работает функция 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
🚀 Big Win Episode 4! Our games smash into 2025 with massive wins!
This year's first episode of big wins brought three incredible prizes:
🎸Dr. Rock & the Riff Reactor — Super bonus bet $3000, win $102,918!
🎅 Gates of Santa — Bet 20 RUB, win 300,000 RUB ($3,000)!
⚡️ Dr. Rock & the Riff Reactor — Bet 3600 RUB, win 600,000 RUB ($6,000)!
🕹 Ready to make history with your spins? Let's go! 🎯
#TrueLabGames#BigWins
🎅 Big Wins in our new slot Gates of Santa already here🎄
The magic of the holiday season is real, and Gates of Santa proves it with some jaw-dropping wins! Take a look:
😮A lucky player turned 1 GBP into an incredible 10,337.7 GBP! That’s a multiplier of x10,337.7!
🦄With just a 1.25 EUR bonus bet, one player hit a jackpot of 12,241.4 EUR, an astonishing x12,241.4 multiplier!
💥A high-stakes bet of 2 EUR brought home an epic 21,600 EUR! That’s a holiday-perfect x10,800 multiplier! 🤑
🎄 The New Year and Christmas have already brought joy and fortune to hundreds of players in Gates of Santa. Will you be next? Try your luck today!
#BigWins#GatesOfSanta#HolidayMagic
In Battle Rage, the Rage multiplier kicks into action when the Emperor Wild lands, activating the Rage accumulator and boosting your potential for huge wins up to x100,000! The Rage Multiplier has no limits and carries over into Free Spins for even more intense payouts.
Prepare to harness the power of Rage and dominate the arena when Battle Rage launches on October 15, 2024!
#BattleRage#RageMultiplier#SlotGames#BigWins#TrueGames#TrueSlots#TrueLab