9

初学者提问。我已经启动了我的 iPython shell,并且正在使用 run-command 运行脚本,并且一切正常。但是,运行脚本文件,然后编辑导入的脚本文件,然后再次尝试运行它会导致旧的导入文件运行。所以我猜python会为速度保存某种缓存。我已经尝试过明确的命令等但无济于事。

基本上我的问题是这个。两个文件:function.py 和 program.py。程序文件导入函数。但是运行程序然后编辑函数然后再次运行程序会导致旧的函数/未编辑的版本运行。

4

4 回答 4

9

在 iPython 或标准 Python 解释器中,您可以使用该reload()函数重新加载导入的模块。

例子:

In [1]: import foo
  # make some changes to the foo.py
In [2]: reload(foo)
于 2010-11-02T08:31:43.647 回答
2

For Python 3.4 and above

import importlib
import foo

# Make changes on foo.py

importlib.reload(foo)
于 2021-04-28T19:54:20.433 回答
1

使用Python 的 reload函数重新编译模块代码并重新执行所有模块级代码 - 否则 Python 解释器将使用过时的编译字节码 (.pyc)。例如:

In [1]: import script

In [2]: run script
...

In [3]: reload(script)
Out[3]: <module 'script' from 'script.pyc'>
...
In [4]: run script
于 2010-11-02T08:47:30.940 回答
0

这里说文件每次都从磁盘重新读取,你确定错误不在你身边吗?

于 2010-11-02T08:25:55.693 回答