为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

有只小跳蛙 2019-10-17 15:49:56
我正在尝试重新加载已经在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)


查看完整回答
反对 回复 2019-10-17
?
手掌心

TA贡献1942条经验 获得超3个赞

对于> = Python3.4:


import importlib

importlib.reload(module)

对于<= Python3.3:


import imp

imp.reload(module)

对于Python2.x:


使用内置reload()功能。


reload(module)


查看完整回答
反对 回复 2019-10-17
?
慕盖茨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


查看完整回答
反对 回复 2019-10-17
  • 3 回答
  • 0 关注
  • 1270 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信