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

Python重复导入模块是否会产生内存重复引用?多实例类场景答疑

模块变量内存存储问题解答

结论先行

  • Python里的模块是单例加载的:不管被导入多少次、被多少个类实例引用,整个模块只会在内存中加载一次。所以创建多个MyClass实例时,my_module.x、my_module.y这些变量只会有一份内存存储,绝不会出现3个独立内存位置的情况。

为什么会这样?

当my_class.py第一次导入my_module时,Python会执行my_module.py里的代码,把模块里的变量、函数、导入的库都封装成一个模块对象存在内存里。之后不管是在main.py里创建多少个MyClass实例,只要它们引用my_module,都是直接指向已经加载好的那个模块对象,不会重新加载模块或复制变量。

要不要改单例/静态类?

完全没必要。Python模块本身就是天然的单例,当前的写法已经是最优解——模块形式适合存放常量、工具函数这类不需要实例化的内容,代码简洁还符合Python的设计逻辑。

如果之后需要让某些变量和MyClass实例绑定(比如每个实例要有自己的x值),那把这些变量移到MyClass的实例属性里就行,不用动模块。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 17:57:18