Как работает функция 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
Ustad Saami — Pakistan Is for the Peaceful (Glitterbeat, 2020)
#surti#traditional#tambura#harmonium#tabla#Pakistan
Устад Саами — последний из ныне живущих певцов, способных исполнить древние 49-нотные микротональные гаммы традиции Сурти. Сурти сформировалась еще до каввали — традиции исполнения суфийской поэзии под музыку. В общем, исполнение песен в традиции Сурти считается спорным в исламском обществе, потому что она появилось еще до Мухаммеда. Даже под угрозой со стороны исламских фундаменталистов, мастер всю жизнь практиковал исчезающее искусство, которое передавалось из поколения в поколение с 13 века. Издание The Quietus отмечает, что «когда Устад Саами умрёт, эти 49 нот умирут вместе с ним». Pakistan Is for the Peaceful — его второй альбом, состоящий из трех композиций. Запись проходила в Карачи во время живого сета на крыше дома мастера под музыкальное сопровождение его четырёх сыновей. Продюссированием записи занимался Ян Бреннан, известный по работам с Tinariwen.
Spotify | AppleMusic | Bandcamp
Ustad Saami — A for Aleph Live (A for Aleph, 2024)
#surti#khyal#tambura#harmonium#tabla#Pakistan
Выступление прославленного певца Устада Саами и его сыновей на студии пакистанского лейбла звукозаписи A for Aleph. На записи можно услышать произведение Khayal (خیال), названное в честь одной из доминирующих форм музыки Северной Индии, и Kalam-e-Khusro, посвященное культовому суфийскому поэту Амир Хосрову. У него более семи веков назад обучался далекий предок Устада Саами, Миян Самат.
Семья Устада Насируддина Саами стояла у истоков школы каввали, основанной в XIII веке в Дели. Стиль Саами называется «Судх Бани» и, судя по всему, он является последним из ныне живущих вокалистов, практикующих микротональную систему шрути из 49 нот.
🔗 YouTube | Spotify | AppleMusic | Bandcamp
Ustad Saami — East Pakistan Sky (Glitterbeat Records, 2021)
#surti#khyal#traditional#tambura#harmonium#tabla#Pakistan
Семья Устаада Насируддина Саами стояла у истоков школы каввали, основанной в XIII веке в Дели. Его предок Миян Самат обучался у самого Амира Хосрова, культового суфийского поэта, после чего традиция передавалась от отца к сыну в течение более чем 7 веков. Сам Саами начал свой творческий путь в середине 50-х годов под руководством своего дяди Устаада Мунши Разиуддина. В течении многих лет обучения ему было разрешено выражать свои мысли только посредством пения. Стиль Саами называется «Судх Бани» и судя по всему он является последним из ныне живущих вокалистов, практикующих микротональную систему шрути из 49 нот. East Pakistan Sky – его третий альбом, спродюссированный Яном Бреннаном, известным по работе с Tinariwen. Запись проходила в Карачи во время живого сета на крыше дома мастера под музыкальное сопровождение его четырёх сыновей.
Spotify | AppleMusic | Bandcamp | VK