Как работает функция 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
Microsoft Community Conference 2024 | Uzbekistan
Join us for a premier gathering of the Microsoft Developers Community in Uzbekistan! The annual Microsoft Community Conference is back and promises an unparalleled experience of innovation and technology. Mark your calendar for November 30, 2024, and get ready to immerse yourself in the latest advancements and ideas shaping the tech industry.
🎉 Highlights:
• Inspiring Keynote Presentations: Hear from leading tech innovators and industry experts.
• Interactive Workshops: Explore hands-on sessions with the latest Microsoft tools and technologies.
• Engaging Panel Discussions: Dive into trends and best practices shaping today’s tech landscape.
• Networking Opportunities: Connect with fellow developers, tech professionals, and enthusiasts.
📅 Date: November 30, 2024
📍 Location: Tashkent, Uzbekistan
Don’t miss out on this exciting opportunity to learn, network, and grow within a vibrant community. Whether you're a developer, tech professional, student, or simply passionate about technology, this is an event you won’t want to miss!
🔗 Register Now: https://mdcuzbekistan.com/register
Stay tuned for more updates and join us in shaping the future of technology in Uzbekistan!
#MDCConf2024#MicrosoftDevelopersCommunity#UzbekistanTech#TechConference#CommunityEvent
@mdcuzbekistan
Microsoft Community Conference 2024 | Uzbekistan
Join us for a premier gathering of the Microsoft Developers Community in Uzbekistan! The annual Microsoft Community Conference is back and promises an unparalleled experience of innovation and technology. Mark your calendar for November 30, 2024, and get ready to immerse yourself in the latest advancements and ideas shaping the tech industry.
🎉 Highlights:
• Inspiring Keynote Presentations: Hear from leading tech innovators and industry experts.
• Interactive Workshops: Explore hands-on sessions with the latest Microsoft tools and technologies.
• Engaging Panel Discussions: Dive into trends and best practices shaping today’s tech landscape.
• Networking Opportunities: Connect with fellow developers, tech professionals, and enthusiasts.
📅 Date: November 30, 2024
📍 Location: Tashkent, Uzbekistan
Don’t miss out on this exciting opportunity to learn, network, and grow within a vibrant community. Whether you're a developer, tech professional, student, or simply passionate about technology, this is an event you won’t want to miss!
🔗 Register Now: https://mdcuzbekistan.com/register
Stay tuned for more updates and join us in shaping the future of technology in Uzbekistan!
#MDCConf2024#MicrosoftDevelopersCommunity#UzbekistanTech#TechConference#CommunityEvent
@mdcuzbekistan
Exciting Announcement: The Tech Joined Us as a Media Partner!
We are proud to welcome The Tech as an official media partner of the MDC Uzbekistan. This partnership marks the beginning of an exciting collaboration to support all our initiatives, including hackathons, conferences, and other key events.
With The Tech’s support, we’re set to expand our reach and inspire even more developers across Central Asia. Together, we’ll continue building a stronger tech community!
#MicrosoftDevelopersCommunity#TheTech#MediaPartner#TechEvents#MicrosoftUzbekistan
@mdcuzbekistan