При написании или отладке программы Python мне очень нравится использовать переключатель командной строки -i
, чтобы иметь возможность напрямую проверять мои функции без необходимости запускать все от начала до конца.
Однако, когда я вношу изменения в код, мне нужно закрыть и перезапустить мой интерактивный сеанс, потеряв все временные переменные, которые я мог бы определить. Как перезагрузить исходный файл из интерпретатора python?
Встроенная функция reload
выглядит так, как будто она создана для этого, но я могу использовать ее только с именованными модулями:
>> import my_prog
>> print my_prog.x
-- prints an error, because x is not defined --
-- edited my_prog.py to add the x global now...
>> reload(my_prog)
>> print my_prog.x
-- prints x
Однако, если я вместо этого делаю from my_prog import *
в начале, перезагрузка не работает, и выполнение импорта снова также не имеет эффекта.