Python命令行解释器没有识别到我代码中的更新更改。

12 浏览
0 Comments

Python命令行解释器没有识别到我代码中的更新更改。

我使用Atom文本编辑器编写代码,然后导入到Python 3.4命令行解释器中。如果我在代码中犯了一个错误,需要进行修复,我无法在解释器中看到更改的效果,除非我关闭并重新打开它。即使重新导入文件也是如此。它是否有一个需要清除的缓存?如何在不关闭解释器的情况下看到代码的更改?

0
0 Comments

Python命令行解释器无法识别我代码中的更新更改的原因是因为当你在解释器中加载一个Python模块时,它会一次性读取所有导入的代码,然后将该代码缓存以供后续使用。这意味着如果你对模块进行任何更改,你需要告诉解释器重新加载其内容。解决这个问题非常简单:

>> import foo  # 将foo代码在解释器中固定到导入时的状态
>> # [对foo代码进行更新]
>> import importlib
>> importlib.reload(foo)

这就是解决方法了!

需要注意的是:importlib是Python 3.4版本之后新增的模块。在此之前,imp模块具有相同的功能。在Python 2中,reload()函数就是默认命名空间的一部分。

在Python 3中,reload()不再是全局命名空间的一部分。正确的做法是使用importlib。

这真是个痛苦的事情。我会进行更新。

0