Как работает функция 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
🌟Будущее атомной энергетики с Обнинск Тех: как это было🌟
🗓 С 2 по 8 февраля 2025 года в Обнинске прошла II Международная зимняя школа «Обнинск Тех», собравшая 128 иностранных студентов из 39 стран, в том числе ребят из Узбекистана, Казахстана и Монголии.
🎓 Хотите узнать, почему эти талантливые умы выбрали обучение в России? Как это связано с их страстью к атомной отрасли? В нашей серии видео студенты из Узбекистана поделились своими мыслями на эти и другие темы.
#ObninskTech#AtomicEnergy#FutureLeaders
Росатом Сервис в Obninsk Tech: экспертиза для новых поколений атомщиков
🔉 4 февраля представитель Отраслевого центра по экспортному контролю Росатом Сервис Мария Левон выступила на Международной зимней школе «Obninsk Tech-2026» с докладом на тему «Modern Russian NPP with VVER-1200. Distance learning and simulators” на мероприятии «Obninsk Tech Winter School»
👨👩👧Мероприятие прошло на базе ИАТЭ НИЯУ МИФИ и отеля Яхонты-Таруса
🌐 Мария рассказала слушателям о платформе Росатом Сервис - RuLES - своеобразной экосистеме технологических знаний, предоставляющей студентам из стран-партнеров возможность для онлайн-обучения инженерным специальностям и русскому языку как иностранному
🗺 В своем выступлении Мария подробно остановилась на описании базового курса АЭС с ВВЭР-1200, который дает описание основ размещения и проектирования АЭС, а также технологических процессов производства электроэнергии на АЭС
💼 Также Мария привела примеры успешной реализации обучения по курсу для зарубежных заказчиков, разобрала реальные кейс-стади (аварийное планирование и проектирование АЭС) из курса, встречающиеся в атомной отрасли
🔧 В заключительной части выступления Мария упомянула о курсах по тренажеростроению, разработанных совместно с Инженерно-техническим центром «ДЖЭТ», предоставив базовую информацию об аналитических тренажёрах, их назначении и особенностях, а также школах моделирования «ДЖЭТ»
В этом году мероприятие «Obninsk Tech» собрало 120 иностранных студентов из 45 стран мира, включая представителей новых для проекта университетов
#новость#обучение#атомнаяпромышленность#МИФИ#ObninskTech