Как работает функция 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
В Риге кстати до сих пор продолжают находить сокровища из прошлого. Совсем недавно во время ремонта фасада по адресу Tērbatas 6/8 было обнаружено вот это.
Скорее всего написано: Galvenais meistars (Главный мастер) #riga
Подробнее про несколько настенных надписей.
1. Сохранившаяся реклама на стене дома. "Папиросы "Рай" фаб. А.С.Майкапаръ" (1887 - 1940) Во времена первой Латвийской республики фабрика Майкапара была крупнейшим табачным предприятием Латвии.
2. Пуговичная мануфактура Ракузина. Пуговичное заведение было основано в 1883 году мещанином Ц. Ш. Ракузиным.
3. На Чиекуркальной линий (район Риги) шла бойкая торговля мясом и колбасой.
4. Со времен 2-й мировой войны сохранился указатель на случай бомбежки: "Убежище - в направлении Зиедоньдарзса".
5. Tapezierer - по-немецки обойщик. За этой дверкой работал мастер по наклейке обоев.
6. Колониальная торговля. В колониальных лавках торговали экспортным провиантом: специями, чаем, кофе, табаком, винами. #riga
Это мое видео про Ригу и ее прошлое, слои истории в городе видны иногда очень явно, а порой надо присмотреться и увидишь как история смотрит на тебя. #art
https://www.instagram.com/zhivoe1/#riga
🎬@zeitframe
📝 Рига о начале реконструкции одного из старейших районов Чиекуркалнс. Čiekurkalns, дословно «Гора шишек» Застройка района началась около 1870 года на землях усадьбы Шрейенбуш. Первоначально главная улица называлась Шрейенбушская 1-я линия. Застройка велась без плана, официальных названий улицам не давали, и до настоящего времени старейшие улицы Чиекуркалнса называются «линиями». #рига#Латвия#riga#latvia#прошлое
@ciekurkalns
Всем привет, меня зовут Андрей Першин. Это мой телеграм-канал, где я рассказываю про все, что мне интересно. Мое творчество — это фотографии, анимация и подкаст.
Я родился в Удмуртии, жил в Ижевске, Казани и Москве, в начале 2017 года уехал из страны и жил в Латвии, с февраля 2023 года живу в Берлине.
Для удобства отметил почти все посты тегами, можете выбрать, что вам интересно. Спасибо, что читаете, смотрите, слушаете и поддерживаете.
#de Германия
#ru Россия
#lv Латвия
#ud Удмуртия
#mo Москва и область
#ua Украина
#fr Франция
#iz Ижевск
#riga
#me Личное, мысли
#art Творчество
#pod Подкаст
#bam Байкало-Амурская магистраль
#vld Владивосток
#psk Псков
#kazan Казань
#nn Нижний Новгород
#smol Смоленск
#ot Другое