Как работает функция 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 $MKR price is surging for the second time, as affected by the #Endgame Launch announcement from #MakerDAO.
Whale 0xcf9 spent 1.94M $USDT to buy 702.8 $MKR at ~$2,763 around 30 mins ago.
👉 Address: 0xcf9bfaf7e7ed48d85f2487b8fed07852a5e93ad1
Moreover, the founder of MakerDAO, Rune Christensen (@RuneKek), also spent $4.57M to buy 1,967 $MKR at ~$2,324 in the past 7 days, now making $1.02M (+22.3%).
👉 Entity: Rune Christensen (MakerDAO founder)
Follow @spotonchain and turn on your 🔔 at the above addresses for more updates!
#приплыли
👇Греция,Афины
Задержан создатель и распространитель известного вируса VenomRAT: у него было доступ к 100 000+ криптокошельков
С 10 по 13 ноября состоялся заключительный этап кибероперации Endgame, которая началась в 2024 году.
Endgame - это «Эндшпиль»,заключительная стадия шахматной партии,которая наступает после размена большинства фигур.
⚫️Кибероперация Европола охватила 10 стран: ликвидирована инфраструктура более 1000 преступных серверов,арестовано 20 доменов. Инфраструктура VenomRAT размещалась на сервере компании во Франции.
#киберновости#cybercrime#endgame
✅Подписаться
⭐Буст канала
Sudadera con Capucha Avengers Endgame, para seguidores de Los Vengadores y todo el universo Marvel #Avengers#Vengadores#Endgame#LosVengadoresEndgame#Sudadera#MCU
https://www.milideaspararegalar.es/producto/sudadera-con-capucha-avengers-endgame/
💻www.milideaspararegalar.es
Sudadera con Capucha Avengers Endgame, para seguidores de Los Vengadores y todo el universo Marvel #Avengers#Vengadores#Endgame#LosVengadoresEndgame#Sudadera#MCU
https://www.milideaspararegalar.es/producto/sudadera-con-capucha-avengers-endgame/
💻www.milideaspararegalar.es