Как работает функция 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
The largest holder of $WIF once again borrowed 2M $USDC from #Kamino to buy 894,854 $WIF at $2.24 1 hour ago!
This whale now holds 32.1M $WIF($71M), with a total profit of more than $86M!
The largest holder of $WIF borrowed 4.5M $USDC from #Kamino to buy 2.55M $WIF at $1.76 again 5 hours ago!
This whale now holds 31.2M $WIF($57.4M), with a total profit of more than $74M!
This whale spent $226K to buy 19.86M $WIF at only $0.0114 from Dec 13 to Dec 15, 2023, then registered a domain of "binance-insider.sol" and spent 86,738 $SOL($8.92M) to buy 17.23M $WIF in one transaction.
Check all his trades on $WIF via the image below.
Address:
https://solscan.io/account/mmEAfWkuYjE7Za8oPUkUgY5VmWfNs627qw7jedG4dzc#transfers
🚀 Kamino Introduces Whitelisted Reserves Following Solana Exploit
Kamino has launched Whitelisted Reserves, a smart contract feature designed to restrict lending vault allocations to reserves approved by the protocol. According to NS3.AI, this development comes shortly after the approximately $270 million exploit of the Drift Protocol on Solana. The new feature is now active on all vaults displayed on Kamino's frontend, with withdrawals still dependent on available liquidity.
#Kamino#WhitelistedReserves#Solana#Exploit#LendingVaults#NS3AI#DriftProtocol#SmartContract#CryptoSecurity#SOL
🚀 Solana's Neutral Trade Responds to Drift Attack Impact
Neutral Trade, a quantitative strategy sharing platform within the Solana ecosystem, announced that it is assessing the impact of the Drift attack on its platform and users. According to Foresight News, the team is awaiting further investigation results from Drift. The update includes the suspension and removal of all 'Drift Architecture' vaults from the homepage, although users can still view related positions on the portfolio page. Currently, the homepage only displays the 'Neutral Strategy' proprietary strategy vaults, which are operating normally and have not suffered any losses.
The 'Neutral Strategy' vaults have undergone independent audits by Halborn, Offside Labs, and Quantstamp, and are integrated with FORDEFI's enterprise-grade security solutions. Although the NT Earn vaults had Drift position configurations, Neutral's risk engine detected anomalies during the attack and preemptively withdrew funds to Jupiter Lend and Kamino, preventing any losses.
Neutral Trade is committed to advancing security upgrades and is considering joining the STRIDE ecosystem security program supported by the Solana Foundation. Previously, Neutral Trade reported a loss of approximately $3.67 million due to the Drift attack.
#Solana#NeutralTrade#DriftAttack#CryptoSecurity#DeFi#Blockchain#STRIDE#JupiterLend#Kamino#QuantitativeStrategy#SOL#JUP