Как работает функция 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
Field research fellowship
If you're a UPSC student and thinking about a Plan B, this could be the perfect opportunity for you. Data Analytics for Public Policy Fellowship is a 2 months , fully online program that allows you to explore the world of quantative research methods. It's a great way to test your interests and see if research could be your Plan B. The program runs from 5th January to 15th March 2025, and you won't need to travel for fieldwork—everything can be done in your own neighborhood. With limited seats, this is a chance to explore new opportunities without a long-term commitment. Apply by 4th January.
https://iisppr.org.in/data-fellowship/
#UPSC#CareerPlanning#Fellowship#NewOpportunities
Field research fellowship
If you're a UPSC student and thinking about a Plan B, this could be the perfect opportunity for you. The IISPPR Field Research Fellowship is a one-month, fully online program that allows you to explore the world of qualitative research methods. It's a great way to test your interests and see if research could be your Plan B. The program runs from September 1 to 30, 2024, and you won't need to travel for fieldwork—everything can be done in your own neighborhood. With limited seats, this is a chance to explore new opportunities without a long-term commitment. Apply by August 15
https://iisppr.org.in/
#UPSC#CareerPlanning#Fellowship#NewOpportunities
Field research fellowship
If you're a UPSC student and thinking about a Plan B, this could be the perfect opportunity for you. The IISPPR Field Research Fellowship is a one-month, fully online program that allows you to explore the world of qualitative research methods. It's a great way to test your interests and see if research could be your Plan B. The program runs from September 1 to 30, 2024, and you won't need to travel for fieldwork—everything can be done in your own neighborhood. With limited seats, this is a chance to explore new opportunities without a long-term commitment. Apply by August 15
https://iisppr.org.in/
#UPSC#CareerPlanning#Fellowship#NewOpportunities
Field research fellowship
If you're a UPSC student and thinking about a Plan B, this could be the perfect opportunity for you. The IISPPR Field Research Fellowship is a one-month, fully online program that allows you to explore the world of qualitative research methods. It's a great way to test your interests and see if research could be your Plan B. The program runs from September 1 to 30, 2024, and you won't need to travel for fieldwork—everything can be done in your own neighborhood. With limited seats, this is a chance to explore new opportunities without a long-term commitment. Apply by August 15
https://iisppr.org.in/
#UPSC#CareerPlanning#Fellowship#NewOpportunities