Как работает функция 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
📈 Are employers ready to navigate the shifting demands of the economy? Benjamin Chua, Founder & CEO of SPECO, shares an insightful roadmap on for navigating the evolution of the workforce with the Skills Demand for the Future Economy 2023/24 report.
Read more: https://go.gov.sg/20240108tg#SkillsFutureSG#lifelonglearning
🚢 From business graduate to manager in the Maritime industry, Kumaresh pursued a dream that sparked off during his internship. Book a free consultation with a Skills Ambassador today: https://go.gov.sg/ssg-20231113tg#SkillsFutureSG#lifelonglearning
SSG has signed an MOU with the Institute for Adult Learning Singapore and SUTD Singapore University of Technology & Design to drive cyber-physical learning in the fields of higher education and lifelong learning. The collaboration includes a joint Living Lab, which will allow the study of "live" interaction between the instructors and learners, and use the insights to develop andragogies, professional practices and educational innovations for adult educators and CET learners, leading to higher quality and relevant training for Singaporeans.
#SkillsFutureSG#lifelonglearning
🎉 Big thanks to all who joined us the past 7 weeks at SkillsFuture Festival 2023! Let's continue to embrace #lifelonglearning and get ready to join us again next year for more knowledge, skills, and inspiration. 🌟📚
#SkillsFutureFestival#SkillsFutureSG
🚨 Final week alert! 🚨
SkillsFuture Festival 2023 is coming to a close, but the learning activities are as exciting as week 1 ⚡️.
Check out the full lineup here: go.gov.sg/sffest2023
#SkillsFutureFestival#SkillsFutureSG#lifelonglearning
🌟 Weekly Highlights Alert! 🌟 7-13 August: Embrace a week filled with empowering events and activities designed to supercharge your skills and ignite your career!
Check out the full lineup here: go.gov.sg/sffest2023
#SkillsFutureFestival#SkillsFutureSG#lifelonglearning
🌟 Weekly Highlights Alert! 🌟 From July 31st to August 6th, an incredible lineup of exclusive events and activities await you. Embrace the journey of lifelong learning with us!
Check out the full lineup here: go.gov.sg/sffest2023
#SkillsFutureFestival#SkillsFutureSG#lifelonglearning
🤩 From interior design to sound engineering, Chan Chue proves that the pursuit of knowledge knows no age limits. Inspired to learn a new skill?
Filter to your course of interest here: https://go.gov.sg/ssg20240111tg#SkillsFutureSG#lifelonglearning#OwnYourSkills
Announced today by DPM Lawrence Wong, #ForwardSG report unveils more upskilling and reskilling support for mature mid-career Singaporeans to thrive and build career resilience in a fast-changing economy.
#SkillsFutureSG#lifelonglearning
The Industrial Transformation Asia-Pacific 2022 (ITAP 2022) opens today till 20 Oct at the Singapore EXPO Convention & Exhibition Centre.
To encourage enterprises to invest in their workers’ skills development alongside business transformation, @SkillsFutureSG also showcased initiatives, such as the SkillsFuture Queen Bee, SkillsFuture Career Transition Programme and the SkillsFuture Work-Study Programme, alongside Industry Connect talks by partners to share insights and case studies over the 3-day trade event.
DPM Heng also launched the refreshed Industry Transformation Maps across five sectors at ITAP 2022, in line with Singaporeans goal to grow manufacturing value-added (VA) by 50% from 2020 to 2030. This will be done by focusing on innovation, embracing sustainability and training talent to seize job opportunities.
#SkillsFutureSG#ITAP2022#I4.0