Как работает функция 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
⚡️Toshkent — IV Osiyo yoshlar oʻyinlari mezboni
Bahraynda oʻtkazilgan Osiyo Olimpiya Kengashining 101-Ijroiya qoʻmitasi yigʻilishida Toshkent 2029-yilgi IV Osiyo yoshlar oʻyinlariga mezbonlik qilishi haqida qaror qabul qilindi.
Bugun III Osiyo yoshlar oʻyinlarining tantanali yopilish marosimida bu haqida rasman e’lon qilindi. Demak, Oʻzbekiston yana 4 yildan keyin qit’amizning eng kuchli yosh sportchilarini oʻzida jamlaydi.
—
⚡️Ташкент примет IV Азиатские юношеские игры
Исполком Олимпийского совета Азии, заседание которого прошло в Бахрейне, принял решение доверить Ташкенту проведение IV Азиатских юношеских игр 2029 года.
Об этом официально объявили сегодня на торжественной церемонии закрытия III Азиатских юношеских игр. Таким образом, уже через четыре года Узбекистан станет площадкой для сильнейших молодых спортсменов Азиатского континента.
#Toshkent2029
👉@OlympicUz
olympic.uz I YouTube I Instagram I
Xayr, Bahrayn! Salom, Toshkent!
Bahraynda III Osiyo yoshlar oʻyinlarining tantanali yopilish marosimi boʻlib oʻtdi. Ahamiyatlisi, mazkur tadbirda Toshkent 2029-yil IV Osiyo yoshlar oʻyinlarini qabul qilishi rasman e’lon qilindi.
Marosimda Sport vaziri oʻrinbosari Shahrullo Mahmudov, Toshkent shahar hokimi oʻrinbosari Durdona Rahimova, shuningdek, MOQ rahbariyati ishtirok etdi.
Tadbirda mamlakatimiz nomidan Osiyo Olimpiya kengashi (OOK) vitse-prezidenti, Oʻzbekiston MOQ raisining birinchi oʻrinbosari Otabek Umarov Oʻyinlarning kelgusi mezboni sifatida rasmiylardan OOKning bayrogʻini qabul qilib oldi.
—
Прощай, Бахрейн! Здравствуй, Ташкент!
В Бахрейне состоялась торжественная церемония закрытия III Азиатских юношеских игр. Примечательно, что в ходе этого мероприятия было официально объявлено, что Ташкент примет IV Азиатские юношеские игры в 2029 году.
В церемонии приняли участие заместитель Министра спорта Шахрулло Махмудов, заместитель хокима города Ташкента Дурдона Рахимова, а также руководство Национального Олимпийского комитета.
От имени нашей страны в качестве будущего хозяина Игр в мероприятии участвовал вице-президент Олимпийского совета Азии, первый заместитель председателя Национального Олимпийского комитета Узбекистана Отaбек Умаров, который принял флаг ОСА из рук официальных представителей.
#Bahrayn2025#Toshkent2029
👉@OlympicUz
olympic.uz I YouTube I Instagram I
Osiyo Olimpiya kengashi (OOK) vitse-prezidenti, Oʻzbekiston MOQ raisining birinchi oʻrinbosari Otabek Umarov OOK bayrogʻini qabul qildi
—
Вице-президент Олимпийского совета Азии (ОСА), первый заместитель председателя Национального Олимпийского комитета Узбекистана Отабек Умаров принял флаг ОСА
#Bahrayn2025#Toshkent2029
👉@OlympicUz
olympic.uz I YouTube I Instagram I
Toshkentda Osiyo Olimpiya kengashining 46-Bosh Assambleyasi bo‘lib o‘tdi
Poytaxtimiz Toshkent shahrida Osiyo Olimpiya kengashining 46-Bosh Assambleyasi bo‘lib o‘tdi. Nufuzli anjumanda Osiyo Olimpiya kengashi va unga a’zo Milliy Olimpiya qo‘mitalari vakillari, Xalqaro Olimpiya qo‘mitasi hamda yetakchi sport tashkilotlarining rahbarlari, shuningdek, O‘zbekiston Respublikasi Sport vazirligi, Milliy Olimpiya va Paralimpiya qo‘mitalari rahbariyati ishtirok etdi.
—
В Ташкенте состоялась 46-я Генеральная Ассамблея Олимпийского совета Азии
В Ташкенте прошла 46-я Генеральная Ассамблея Олимпийского совета Азии. В работе престижного форума приняли участие представители Олимпийского совета Азии и входящих в его состав Национальных Олимпийских комитетов, главы Международного Олимпийского комитета и ведущих спортивных организаций, а также руководство Министерства спорта Республики Узбекистан, Национальных Олимпийского и Паралимпийского комитетов.
#OOK#BoshAssambleya#Toshkent2029
👉@OlympicUz
olympic.uz I YouTube I Instagram I