Как работает функция 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
#Tourist
The Great Wall of China :
is a huge chain of defensive fortifications stretching across northern China, it is a symbol of China and one of the Seven Wonders of the new world, known for its enormous length exceeding 21 thousand kilometers, it was built over centuries, especially during the Ming dynasty, it features watchtowers and strategic corridors, it is a UNESCO World Heritage Site and an outstanding world tourist destination.
📝
Construction history:
the first construction work began more than 2000 years ago, during the spring and autumn reign and the Warring States, and it was significantly expanded and renovated by later dynasties, especially the Ming Dynasty (1369-1644).
#Nature
#Tourist
Socotra:
is a Yemeni archipelago belonging to the Hadramaut region consisting of six islands on the Indian Ocean off the coast of the Horn of Africa near the Gulf of Aden, located about 240 kilometers (150 Mi) east of the coast of Somalia and 380 kilometers (240 Mi) south of the Arabian Peninsula.
The island was classified as a World Heritage Site in 2008, and the New York Times ranked it as the most beautiful island in the world in 2010 due to the unique biodiversity and environmental importance of this island and its reflection on the world. In October of 2013, the Socotra archipelago governorate became an independent governorate from Hadramaut governorate.
#History
#Tourist
The Great Sphinx:
is a huge stone sculpture carved from limestone, embodying a mythical creature with a human head and the body of a lion in a reclining position.
Facing directly from West to East, the statue is located on the Giza plateau on the West Bank of the Nile in Giza, Egypt.
It is believed that the facial features of the statue belong to Pharaoh Khafre.
The original figure of the Sphinx was carved from the Adim Rock, later it was restored with limestone layers. The statue is 73 M (240 ft) long from claw to tail, 20 M (66 ft) high from the base to the top of the head, and 19 m (62 ft) wide at its hind feet