Как работает функция 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
Good morning, everyone! 🌄
🤔 The cue ball froze around 69.500, but the #Ether, despite the sideways bitcoin, is trying to grow and is trading around 3800. I think that they will try to get through the Air today or tomorrow to the 3.850-3.870 area. But then everything will depend on #Bitcoin: if the cue ball supports the market with growth, then the #Ether will be able to go above $ 4,000.
😎In general, nothing has been dented on the market since yesterday and the alignment is still the same.
OM Whale Transfers Millions to Binance
A significant OM whale (0x17...fe76) transferred 10.711 million OM to Binance today, valued at approximately 80.88 million USD. Previously, this whale had withdrawn OM worth around 4.82 million USD from Binance between March 1-6, 2024. This indicates a potential profit nearing 84 million USD for the whale. More Details
#OM#Binance#Crypto#Whale#Investment#Market#Profit#Trading#Blockchain#Ether
🚀 Ether Rises Over 6% as Undervaluation Signals Potential Retest of Higher Levels
Ether experienced a 6.33% increase, surpassing $2,150, with indicators suggesting a potential retest of the $2,400–$2,500 range. According to NS3.AI, the Capriole Macro Index Oscillator registered a reading of -2.42, indicating that Ether is in a rare undervaluation zone. This development has sparked interest among investors, who are closely monitoring the cryptocurrency for further movements.
#Ether#Crypto#Ethereum#Undervaluation#PriceIncrease#Investment#CryptoTrading#NS3AI#ETH
🚀 Bitcoin and Ether Prices Could Signal Sustainable Growth, Says Analyst
Macro analyst Jordi Visser has suggested that Bitcoin surpassing $76,000 and Ether exceeding $2,400 might indicate the beginning of a sustainable upward trend this year. According to NS3.AI, Visser expressed confidence in the market's resilience, noting that he does not foresee a recession. Additionally, data from the United States Bureau of Labor Statistics revealed that the Consumer Price Index (CPI) for April increased by 3.3% compared to the previous year.
#Bitcoin#Ether#Cryptocurrency#MarketAnalysis#SustainableGrowth#MacroEconomics#CPI#Inflation#BTC#ETH