Можно перезагрузить модуль, когда он был уже импортирован при помощи reload
встроенная функция:
from importlib import reload # Python 3.4+ only.
import foo
while True:
# Do some things.
if is_changed(foo):
foo = reload(foo)
В Python 3, reload
был перемещен в imp
модуль. В 3,4, imp
удерживался от использования в пользу [1 113] importlib
, и reload
был добавлен к последнему. При предназначении 3 или позже, или ссылка соответствующий модуль при вызове reload
или импорт это.
я думаю, что это - то, что Вы хотите. Веб-серверы как сервер разработки Django используют это так, чтобы Вы видели эффекты своих изменений кода, не перезапуская сам серверный процесс.
Для заключения в кавычки из документов:
Python modules’ код перекомпилирован и повторно выполняемый код уровня модуля, определив новый набор объектов, которые связываются с именами в module’s словаре. init функция дополнительных модулей не вызвана во второй раз. Как со всеми другими объектами в Python только исправлены старые объекты после того, как их подсчеты ссылок опускаются до нуля. Имена в пространстве имен модуля обновляются для указания на любые новые или измененные объекты. Другие ссылки на старые объекты (такие как имена, внешние к модулю), не являются восстановлением для обращения к новым объектам и должны быть обновлены в каждом пространстве имен, где они происходят, если это желаемо.
, Поскольку Вы отметили в своем вопросе, необходимо будет восстановить Foo
объекты, если Foo
класс находится в foo
модуль.
Удалите netunner разделы, и подкачка Linux Создают новую подкачку и основной раздел. Mark основной раздел и продолжите Сделанный