Как работает функция 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
👍Только для гостей нашего стенда LIVE демонстрация и полный разбор возможностей V12 и V12 Pro
➡️Регистрируйтесь на выставку с промокодом RBA2025 для бесплатного входа!
#Русбизнесавто#Higer#AutoBusExpo#V12#V12Pro
☄️ А мы продолжаем #AutoBusExpo
❗️3й день
▶️ Впервые в России — новейшие автобусы #HIGER V-серии:
✔️V12 Pro
✔️V12
🔝 Инновации, комфорт, стиль!
📌 Крокус Экспо, Пав. 2, Зал 6, стенд 6-400
❗️Бесплатный вход по промокоду: RBA2025
⚡️Успейте первыми увидеть автобусы будущего
#AutoBusExpo2025#Русбизнесавто#HIGER#АвтобусыБудущего#ВыставкаВМоскве
👀 Немного закулисья с выставки #AutoBusExpo
❗️Завтра открываем двери — ждём вас ✨
🆕 Впервые в России — новейшие автобусы #HIGER V-серии:
✔️V12 Pro
✔️V12
🔝 Инновации, комфорт, стиль!
📌 Крокус Экспо, Пав. 2, Зал 6, стенд 6-400
🗓 19–22 августа | 10:00–18:00 (22-го до 16:00)
❗️Бесплатный вход по промокоду: RBA2025
🔥 Успейте первыми увидеть автобусы будущего
#AutoBusExpo2025#Русбизнесавто#HIGER#АвтобусыБудущего#ВыставкаВМоскве
💥 Друзья, встречайте новую эру комфорта и стиля 💥
❗️19–22 августа 2025 в Москве пройдет международная выставка #AutoBusExpo – приглашаем вас посетить стенд #Русбизнесавто🔝
📌 Крокус Экспо, Павильон 2, Зал 6, стенд 6-400
Московская обл., Красногорск, ул. Международная, 16
❗️Впервые в России – новое поколение туристических и междугородных автобусов #HIGER V-серии:
✔️ V12 Pro
✔️ KLQ6126LYA V12
➕ Инновационный дизайн
➕ Максимальный комфорт
➕ Передовые технологии
❗️График работы:
19–21 авг. - 10:00–18:00
22 авг. - 10:00–16:00
⚡️Не упустите шанс первыми увидеть будущее автобусных перевозок!
🙂 Ждем вас на нашем стенде!
Бесплатная регистрация по промокоду: RBA2025
#AutoBusExpo2025#HIGER#Русбизнесавто#АвтобусыБудущего#ВыставкаВМоскве
👇 Готовы к путешествию в новом формате? Пишите в комментариях – какие функции в автобусе для вас самые важные!
#Русбизнесавто#HIGER#эксклюзивный#дистрибьютор#автобус#выставка