Рассмотрим следующий Python (2.7.9) код:Выполнить код из другого файла Python, отражая изменения в другой файл
test.py
import test2
import time
while True:
print test2.getData()
time.sleep(1)
test2.py
def getData():
return [1,2,3]
Выполняется с:
python -u test.py
Если я изменяю test2.py пока test.py работает (например, изменение его return [4,5,6]
), выход test.py не меняется. Это не неожиданно.
Однако, я хотел бы внести изменения в test2.py для отражения в выходе. Есть ли способ сделать это? Например. что-то вроде reparsing test2.py каждый раз, когда вызывается test2.getData()
?
Другие вещи пытались, от комментариев:
- Перемещение
import test2
в петлю. - Извлечение test2.pyc при запуске теста (с
import
в и из цикла).
Я предполагаю, что ваш код преобразуется в байтовый код до его запуска, поэтому изменения в любом файле не отражаются во время выполнения. –
Возможно, вы могли бы попытаться переместить оператор импорта в цикле, но это все еще кажется странным, почему вы хотите этот –
@ cricket_007 test2.pyc генерируется, хотя его удаление после изменения test2.py не влияет на выход. –