Как работает функция 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
❗️Пожалуй это даже интересно... Интересно как пояснит этот свой ход KASE....
Инвестиционные компании, работающие на рынке Казахстана сообщают, что получили письма от АО "Казахстанская фондовая биржа" (KASE) касательно необходимости сегрегации (принудительного разделения) счетов граждан Российской Федерации и Республики Беларусь на уровне АО "Центральный депозитарий ценных бумаг", а именно по ценным бумагам, номинированным в валюте, отличной от тенге, и по инструментам, расчеты по которым проходят через международные расчетные депозитарии Euroclear и Clearstream.
Ориентировочно сегрегация начнется после 1 мая 2023 года. После этой даты возможны будут задержки в расчетах по сделкам, совершенным на KASE, что может привести к ситуациям дефолта и штрафным санкциям со стороны биржи, сообщает АО "Halyk Finance"
Для минимизации рисков дефолта по сделкам на KASE с 27 апреля 2023 года "Halyk Financ"e планирует закрыть доступ гражданам России и Беларуси к сектору KASE Global и иным инструментам на KASE, номинированным в иностранных валютах, расчеты по которым проходят в международных расчетных депозитариях Euroclear и Clearstream. Просим учитывать данную информацию при планировании сделок.
#KASE
#сделки
🇰🇿🇷🇺 Российское АО «Райффайзенбанк» стало стал номинальным держателем второго о величине пакета акций в капитале Казахстанской фондовой биржи (KASE), следует из информации на сайте биржи. В его номинальном владении российского банка сейчас 13,1% или 140,8 тысяч акций.
Таким же пакетом акций до 11 октября 2024 года владела ПАО «Московская биржа» (MOEX). В июне 2024 года в отношении «Московской биржи», а также входящих в ее группу Национального клирингового центра (НКЦ) и Национального расчетного депозитария (НРД) были введены санкции США. После введения санкций «Московская биржа» вышла из числа акционеров KASE. С 30 сентября 2024 года представитель MOEX – Владимир Крекотень вышел из состава Совета директоров KASE на основании его заявления о досрочном прекращении полномочий.
После «Московской биржи», владельцами пакета ее акций KASE стали два российских закрытых паевых инвестиционных фонда: «Нигелла» и «Левкой», находящиеся под управлением УК «Тетис Кэпитал» и «Баланс Эссет Менеджмент». Сейчас эти фонды в составе акционеров KASE отсутствуют.
Самый большой пакет акций (46,99%) Казахстанской фондовой биржи принадлежит Национальному Банку Республики Казахстан.
#KASE#MOEX
Подписывайтесь на Sanctions Lists
🇰🇿🇷🇺Казахстанская фондовая биржа (KASE) заявила о выходе из числа ее акционеров ПАО «Московская биржа» (MOEX). В июне в отношении «Московской биржи», а также входящих в ее группу Национального клирингового центра (НКЦ) и Национального расчетного депозитария (НРД) были введены санкции США.
После выхода «Московской биржи», крупнейшим акционером KASE является Национальный Банк Республики Казахстан с долей 47,0%.
Кроме того, KASE сообщила о прекращении взаимоотношений с MOEX, которые основывались на Соглашении, подписанном биржами 10 октября 2018 года. С 30 сентября 2024 года представитель MOEX – Владимир Крекотень вышел из состава Совета директоров KASE на основании его заявления о досрочном прекращении полномочий.
#KASE#MOEX
Подписывайтесь на Sanctions Lists