从其他Python文件运行代码,同时反映对其他文件的更改

时间:2016-12-04 15:33:02

标签: python python-2.7 python-import

考虑以下Python(2.7.9)代码:

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

如果我在 test.py 正在运行时修改 test2.py (例如,将其更改为return [4,5,6]),则输出 test。 py 不会改变。这并不意外。

但是,我希望将 test2.py 的更改反映在输出中。有没有办法做到这一点?例如。每次调用test2.getData()时都会重新解析 test2.py

其他一些尝试,来自评论:

  • import test2移入循环。
  • 在测试运行时删除 test2.pyc import进出循环)。

1 个答案:

答案 0 :(得分:1)

如果我没记错的话,python代码会在执行之前转换为字节代码,因此在运行代码时无法更改代码。 我建议你做的是创建一个全局变量或类而不是改变它。替代解决方案是将数据写入文件,但由于需要访问文件系统并且不会像变量那样快,因此不会受益太多。