Как работает функция 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
DataBackup
An easy-to-use backup Libre application for Android, however your phone needs to be rooted , unless a ROM were to include it as a system app
Support for #multi-user/double backup: same backup/restore on multiple partitions!
Cloud: fully supports #Rclone, which can perform local mounting of network drives from various service providers.
100% data integrity: all data will be retained and there is no need to reconnect or download additional packages.
Complete: Split Apk, Arm32, Arm64, x86, x86_64, Android9+.
Fast: Support: tar lz4 zstd (default).
GitHub - XayahSuSu/Android-DataBackup: 数据备份 DataBackup for Android - https://github.com/XayahSuSuSu/Android-DataBackup
Reminder : to install it via F-Droid first add the Izzy repository to F-Droid ( settings - repositories/sources)
IzzyOnDroid F-Droid Repository -
https://apt.izzysoft.de/fdroid/
#Backup #Android
https://pypi.python.org/pypi/numpy
#NumPy is a general-purpose #array-processing package designed to efficiently manipulate large #multi-dimensional arrays of arbitrary records without sacrificing too much speed for small multi-dimensional #arrays. NumPy is built on the #Numeric code base and adds features introduced by #numarray as well as an extended #C-API and the ability to create arrays of arbitrary type which also makes NumPy suitable for interfacing with general-purpose #data-base applications.
Данные от Santiment: 10 крупнейших кошельков удерживают значительные доли в крупнейших альткоинах, что подчеркивает проблему централизации в крипте:
#Polygon (MATIC): 69.4%
#Shiba Inu (SHIB): 61.2%
#Uniswap (UNI): 50.8%
#Pepe (PEPE): 46.1%
#Ethereum (ETH): 44.0%
#Tether (USDT): 33.1%
#Chainlink (LINK): 31.1%
#Toncoin (TON): 27.5%
#Multi Collateral Dai (DAI): 24.5%
#USD Coin (USDC): 19.0%
💬Мнение : Такая концентрация может повлиять на рынок, так как несколько крупных игроков могут существенно влиять на цену и ликвидность этих активов.
#КриптоНовости#обзоррынка