Как работает функция 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
Higher temperatures, more wet and dry extremes, and accelerating increase in mean sea levels are projected for Singapore and Southeast Asia by the end of the century. Details of Singapore’s Third National Climate Change Study (V3) at go.gov.sg/V3
The choices we make today will determine our future climate. We need every individual to care for the environment as a way of life, in order to build a liveable and #SustainableSG. Find out how you can make a difference at www.mse.gov.sg/policies/climate-change/climategamechanger
Year-end celebrations are different this year, but that doesn’t mean we can’t make this one as special as the last. Let’s make this season of giving an unforgettable and meaningful one, by caring for the environment, yourself and your loved ones. #SustainableSGhttps://go.gov.sg/nea-year-end-advisory-2020
🎶 Ooooo~ This is an S.O.S.! 🎶
Good deals may be tempting but just because it’s on discount doesn’t mean you have to buy it.
Reduce food wastage during the upcoming year-end festivities:
✅ Plan your meals and prep a shopping list
✅ Order only what you can finish
✅ Transform leftovers into new dishes
#SayYEStoWasteLess#SustainableSG
Happy International E-waste Day!
Your old electronics aren’t just clutter. They’re filled with critical raw materials that can power our green future. ♻️
Drop them off at an e-waste bin. Let’s keep those precious materials in the loop!
#RecycleRight#SustainableSG
Ready for Bloobin's eco-party? Let’s see if your paper items make the cut!
Learn more about what can or cannot be recycled at go.gov.sg/towards-zero-waste.
#RecycleRight#SustainableSG
Bloobin's throwing the hottest eco-bash in town. Are your plastic items on the guest list or blacklist?
When unsure, check go.gov.sg/towards-zero-waste.
#RecycleRight#SustainableSG
Serving your guests special cookies and drinks this festive period? Don’t forget those cookie and drink containers can be recycled. For drink containers, get rewarded when you bring them to the nearest ‘Recycle N Save’ Reverse Vending Machine! ☺
You may also choose the ‘no reward’ option – just like 1 in 5 people who recycle with us! Saving our environment for our future generations is the greatest reward. More information at https://recyclensave.sg
#RecycleRight#SustainableSG
Our actions today impact our world tomorrow, and it is up to us to make it a better one. Together, let’s work #TowardsZeroWaste and build a #SustainableSG.
If you’re still not sure how to start, check out the activities and challenges at www.gogreen.gov.sg/programmes/
Donate items in good condition to others who need them most. Your pre-loved treasures could be someone else's gift!
For suggestions on donation channels, visit go.gov.sg/donate-resale-repair-channels
#TowardsZeroWaste#SayYEStoWasteLess#SustainableSG