我在重新加载导入并在其他模块中使用的模块时遇到问题。为清楚起见,让我们考虑一下我有两个模块的例子:
第一个模块:operation.py
def f(x,y):
return x+y
第二个模块:test_operation.py
import operation
x=3
y=4
z= operation.f(x,y)
print z
如果我去翻译并写下:
import test_operation
我将打印4张(z = 4)。如果我将第一个模块operation.py中的函数f更改为:
def f(x,y):
return x+y+1
然后我在解释器重载(test_operation)中写入,我仍然会得到4个而不是5个。看来它重新加载了模块test_operation.py,但它没有重新加载模块operation.py即在test_operation.py中导入。
我该如何解决这个问题?在一般情况下,如何确保每次更改代码中的所有导入模块都重新导入(或重新加载)?
答案 0 :(得分:0)
来自解释器:只需使用完整路径在operation
模块上下文中重新加载test_operation
:
reload(test_operation.operation)
在test_operation.py
,您可以致电reload(operation)
,以便重新加载test_operation
也会重新加载operation
这里进行完整的递归重载检查(不确定这是个好主意......):Recursive version of 'reload'