考虑以下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
移入循环。import
进出循环)。答案 0 :(得分:1)
如果我没记错的话,python代码会在执行之前转换为字节代码,因此在运行代码时无法更改代码。 我建议你做的是创建一个全局变量或类而不是改变它。替代解决方案是将数据写入文件,但由于需要访问文件系统并且不会像变量那样快,因此不会受益太多。