我正在尝试重新加载已经在Python 3中导入的模块。我知道您只需要导入一次,import再次执行命令将不会执行任何操作。执行时reload(foo)出现此错误:Traceback (most recent call last): File "(stdin)", line 1, in (module) ...NameError: name 'reload' is not defined错误是什么意思?
3 回答
HUH函数
TA贡献1836条经验 获得超4个赞
reload 是Python 2中的内置函数,但不是Python 3中的内置函数,因此,您所看到的错误是预期的。
如果确实必须在Python 3中重新加载模块,则应使用以下任一方法:
importlib.reload 适用于Python 3.4及更高版本
imp.reload适用于Python 3.0至3.3(自Python 3.4开始不推荐使用importlib)
手掌心
TA贡献1942条经验 获得超3个赞
对于> = Python3.4:
import importlib
importlib.reload(module)
对于<= Python3.3:
import imp
imp.reload(module)
对于Python2.x:
使用内置reload()功能。
reload(module)
慕盖茨4494581
TA贡献1850条经验 获得超11个赞
为了扩展先前编写的答案,如果您想要一个适用于Python版本2和3的解决方案,则可以使用以下方法:
try:
reload # Python 2.7
except NameError:
try:
from importlib import reload # Python 3.4+
except ImportError:
from imp import reload # Python 3.0 - 3.3
添加回答
举报
0/150
提交
取消