重新加载模块时出现NameError: name 'reload' 未定义
我正在尝试在Python 3中重新加载一个我已经导入的模块。我知道只需要导入一次,重新执行 import
命令是没有效果的。
当我执行 reload(foo)
时,出现了这个错误:
Traceback (most recent call last):
File "(stdin)", line 1, in (module)
...
NameError: name 'reload' is not defined
这个错误是什么意思呢?
7 个回答
49
在编程中,有时候我们会遇到一些问题,尤其是在使用某些工具或库的时候。这些问题可能会让我们感到困惑,特别是当我们不太了解这些工具的工作原理时。
比如说,当我们在写代码的时候,可能会出现错误提示,这些提示有时候并不容易理解。我们需要仔细阅读这些提示,尝试找出问题出在哪里。
此外,社区中的其他开发者也会分享他们的经验和解决方案,这些都是非常宝贵的资源。通过学习他们的经验,我们可以更快地解决自己的问题。
总之,编程是一条不断学习的道路,遇到问题是很正常的。重要的是要保持耐心,积极寻找解决方案,并从中吸取经验教训。
import imp
imp.reload(script4)
98
对于 Python3.4 及以上版本:
import importlib
importlib.reload(module)
对于 Python3.3 及以下版本:
import imp
imp.reload(module)
对于 Python2.x 版本:
使用内置的 reload()
函数。
reload(module)
251
reload
是 Python 2 中的一个内置功能,但在 Python 3 中没有,所以你看到的错误是正常的。
如果你真的需要在 Python 3 中重新加载一个模块,可以使用以下方法:
- 对于 Python 3.4 及以上版本,可以使用
importlib.reload
- 对于 Python 3.0 到 3.3 的版本,可以使用
imp.reload
(但是从 Python 3.4 开始,这个方法就不推荐使用了,建议用importlib
)