LINUX.ORG.RU

python - обновление модулей на лету


0

0

Хочу реализовать возможность обновления кусков программы без полной остановки.

В файле test.py строчка:

a=10

Запускаю интепретатор, там делаю

import test print test.a

пишет 10.

del test

В соседнем окне удаляю вообще test.py, продолжаю

import test

print test.a

пишет снова 10.

Как это побороть? Вроде как del должен удалять модуль из памяти, но не делает этого...

★★★★★

Сомневаюсь, что он удаляет модуль, скорее это равносильно

del locals['test']

Чтобы удалить модуль 'по-черному' можно воспользоваться чем-то вроде

del sys.modules['test']

А вообще, лучше читай документацию по встроенной функции reload, __import__ и по пакету imp.

burivuh
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.