重新加载模块,给出NameError:名称'reload'未定义

我正在尝试重新加载已经在Python 3中导入的模块。我知道您只需要导入一次,import再次执行命令将不会执行任何操作。


执行时reload(foo)出现此错误:


Traceback (most recent call last):

    File "(stdin)", line 1, in (module)

    ...

NameError: name 'reload' is not defined

错误是什么意思?


有只小跳蛙
浏览 1274回答 3
3回答

HUH函数

reload 是Python 2中的内置函数,但不是Python 3中的内置函数,因此,您所看到的错误是预期的。如果确实必须在Python 3中重新加载模块,则应使用以下任一方法:importlib.reload 适用于Python 3.4及更高版本imp.reload适用于Python 3.0至3.3(自Python 3.4开始不推荐使用importlib)

手掌心

对于> = Python3.4:import importlibimportlib.reload(module)对于<= Python3.3:import impimp.reload(module)对于Python2.x:使用内置reload()功能。reload(module)

慕盖茨4494581

为了扩展先前编写的答案,如果您想要一个适用于Python版本2和3的解决方案,则可以使用以下方法:try:&nbsp; &nbsp; reload&nbsp; # Python 2.7except NameError:&nbsp; &nbsp; try:&nbsp; &nbsp; &nbsp; &nbsp; from importlib import reload&nbsp; # Python 3.4+&nbsp; &nbsp; except ImportError:&nbsp; &nbsp; &nbsp; &nbsp; from imp import reload&nbsp; # Python 3.0 - 3.3
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python