Как работает функция 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
🫧Армия США расследует полёты «Апачей» над домом Кид Рока
📌Армия США начала расследование после того, как боевые вертолёты AH-64D Apache из 101-й бригады были сняты на видео кружащими над домом музыканта Кид Рока в Нэшвилле и летающими на низкой высоте возле протестующих в Кларксвилле. По документам вертолёты должны были выполнять учебный полёт
🔵Представитель армии заявил, что это не было санкционированным мероприятием и вертолёты не назначались для наблюдения за демонстрациями. Проводится административная проверка соблюдения правил полётов и требований воздушного пространства
⬅️Обещают принять меры в случае выявления нарушений
Лёгкое небо
#aviation#news#США#Apache
✅ Завтра
Основы In-Memory Computing для архитекторов и разработчиков. Часть 1
📅 28 февраля / 19:00 (время МСК) / онлайн
💵 Бесплатно
📝 Регистрация тут: https://goo.gl/h2Yvvo
Денис Магда, Apache Ignite PMC Chair и директор по продукту в GridGain, расскажет об основных возможностях и компонентах In-Memory Computing решений на примере Apache Ignite. Вебинар совмещает теорию и практику, после него участники смогут проектировать и писать код под подобные системы.
На конкретных примерах кода вы узнаете про:
~ Конфигурацию и запуск кластеров;
~ Обработку данных с использованием key-value API;
~ Оптимальную обработку данных с помощью распределенного SQL.
🔗 Программа: https://goo.gl/h2Yvvo
#apache#ApacheIgnite#онлайн#online
✅ Через неделю
Основы In-Memory Computing для архитекторов и разработчиков. Часть 1
📅 28 февраля / 19:00 (время МСК) / онлайн
💵 Бесплатно
📝 Регистрация тут: https://goo.gl/AgNpma
Денис Магда, Apache Ignite PMC Chair и директор по продукту в GridGain, расскажет об основных возможностях и компонентах In-Memory Computing решений на примере Apache Ignite. Вебинар совмещает теорию и практику, после него участники смогут проектировать и писать код под подобные системы.
На конкретных примерах кода вы узнаете про:
~ Конфигурацию и запуск кластеров;
~ Обработку данных с использованием key-value API;
~ Оптимальную обработку данных с помощью распределенного SQL.
🔗 Программа: https://goo.gl/AgNpma
#apache#ApacheIgnite#онлайн#online
✅ Через неделю
✅ ANDROID MEETUP
📅 29 марта / 19:00–21:00 (время ЕКБ, МСК+2) / Екатеринбург, пер. Химков, 3, коворкинг Соль
💵 Бесплатно
📝 Регистрация тут: https://goo.gl/TyRRL6
Приглашаем вас к нам на митап, чтобы пообщаться, поделиться опытом и рассказать с какими задачами мы сталкиваемся, какие технологии используем и ,конечно, перетереть косточки Kotlin
🔗 Программа: https://goo.gl/TyRRL6
#android#Kotlin#Екатеринбург
✅ Epic Growth Conference
📅 29 марта / 14:00–22:00 (время МСК) / Москва, ул. 3-я Ямского Поля, 15
💵 Платно
📝 Регистрация тут: https://goo.gl/WEVQ6a
29 марта в Москве Mobio и Getloyal при поддержке партнеров организуют конференцию по продуктовому маркетингу Epic Growth Conference.
🔗 Программа: https://goo.gl/WEVQ6a
#marketing#productivity#маркетинг#продукт#Москва
✅ Apache® Ignite™ Meetup #1
📅 29 марта / 19:00–22:00 (время МСК) / Санкт-Петербург, Невский проспект 35
💵 Бесплатно
📝 Регистрация тут: https://goo.gl/xsnDmZ
Встреча для архитекторов и разработчиков, которые интересуются In-Memory решениями, в том числе open-source платформой Apache Ignite.
🔗 Программа: https://goo.gl/xsnDmZ
#Apache#backend#СанктПетербург