Как работает функция 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
Review of Glutinous Rice Ball Workshops and Tea Parties in Aberdeen & Glasgow
花崗岩城與格拉斯哥湯圓製作工作坊及茶聚 回顧
#花崗岩城#Aberdeen 與 #格拉斯哥#Glasgow 湯圓製作工作坊及茶敘,旨在讓參加者有機會了解香港的冬季節日文化,以及自製糯米 湯圓。這是Mission Perm計劃在 Aberdeen舉辦的首次面對面活動⋯⋯使新到埗港人有更多社群參與,讓他們進一步融入社區。兩場活動都有多位蘇格蘭本地非華裔人士參與,活動讓他們了解香港節慶文化。促進香港人和蘇格蘭人之間的文化互動⋯⋯
⋯⋯以上應該係我哋2023年最後嘅實體活動。祝大家冬至平安、#聖誕快樂 同 #新年快樂!
Glutinous Rice Ball Workshops and Tea Parties in Aberdeen & Glasgow, which aimed to offer participants a chance to learn about the Winter festival culture of Hong Kong, and homemade glutinous rice ball. This is the first in-person activity occurring in Aberdeen. In both sessions, there were several native Scots to join and learn about Hong Kong Festival Culture. It enhanced the cultural diversity and interaction between Hongkongers and Scots.
These should be our last physical activities in 2023. We wish you all a safe winter solstice, a merry Christmas and a happy New Year!
閱讀報告全文,
請訂閱Patreon,同時請支持我哋日常運作!
https://www.patreon.com/posts/94874815
Thanks to the Govan & Linthouse Parish Church for co-organising this event.
特別鳴謝Govan & Linthouse Parish Church協辦是次活動。
假如身在蘇格蘭嘅你錯過咗 呢次活動,請唔使失望,我哋喺1月、2月分別有香港開埠紀念同農曆新年節慶活動!歡迎留言或者inbox同我哋講你所在嘅城市,讓我哋更能夠掌握大家參與活動嘅意向!
—
單次捐款支持我哋
https://thehongkongscots.sumupstore.com
喺蘇格蘭,有嘢要搵我哋幫手?即填:
https://forms.gle/n8cSUkW2HS19BRVg7
想同我哋並肩作戰,參與我哋日常運作?
Get Involved!
https://forms.gle/HCvXDXrpUMa2TtwB9