You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

重新导入模块后,原模块中的变量为何未显示初始值?

为什么重新导入模块后变量值没恢复?

Python的模块导入机制是只在第一次导入时加载模块文件到内存,后续再执行import语句时,不会重新读取磁盘上的模块文件,而是直接复用内存中已经存在的模块对象。

结合你的代码来看:

  1. 第一次import foo,Python把foo.py的内容加载到内存,创建了foo模块的实例,此时foo.var是初始值7。
  2. 执行foo.var = 9时,是直接修改了内存中这个foo模块实例的变量值。
  3. 第二次import foo,Python检测到内存里已经存在foo模块的实例,直接复用它,所以打印出的foo.var还是修改后的9,不会重新读取foo.py里的初始值7。

如果想恢复模块的初始状态,需要使用importlib.reload()方法(Python 3.4+),示例代码如下:

import importlib
import foo

# 修改变量后
foo.var = 9
print(foo.var)  # 输出9

# 重新加载模块
importlib.reload(foo)
print(foo.var)  # 输出7

内容的提问来源于stack exchange,提问作者Sumant W W

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 08:20:25