如何在Python中重新加载函数?

3

我想插入两个同名的Python文件路径。是否可以在不重新启动内核的情况下重新加载goal_func?

步骤1:

path = 'a*/goal.py'
ruta_carpeta = path[:-8]
sys.path.insert(1, ruta_carpeta)
from goal import goal_func

步骤2:

path = 'b*/goal.py'
ruta_carpeta = path[:-8]
sys.path.insert(1, ruta_carpeta)
from goal import goal_func

goal_func 没有被更新。


你尝试过使用 importlib.reload 吗? - L.Grozinger
是的,我已经尝试过了,但它告诉我这不是一个模块。 - joz
重新加载模块并不推荐,除非是在Python控制台中进行测试。你的更一般的目标是什么? - progmatico
2个回答

4

使用 importlib.reload 在模块上进行重新加载,然后重新导入函数:

import importlib
import goal
importlib.reload(goal) # reload the module
# now import the function
from goal import goal_func

0

在 'imp' 模块中有一个重新加载函数。使用它,我们可以重新加载已导入的模块。

import imp
imp.reload(function/module)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接