网易首页 > 网易号 > 正文 申请入驻

Python:模块对象

0
分享至

在 Python 中,模块(module)通常被视为“代码的组织单元”或“命名空间的载体”。但从对象模型的角度看,模块并非一种语法概念,而是运行期真实存在的对象。解释器并不是“加载一段文件”,而是创建一个模块对象(module object),并在其中执行代码。

理解模块对象,是理解 Python 导入机制、全局命名空间、依赖管理以及运行期动态行为的关键。

一、模块不是语法结构,而是运行期对象

在 Python 的对象模型中,模块对象(module object)是一等对象,具备与函数对象、类对象同等的地位:

• 具有身份(identity)

• 具有类型(module)

• 具有可变的运行期状态

模块并不是“源文件本身”,也不是“代码对象的集合”,而是解释器在导入阶段创建的,用于承载模块级执行结果与全局命名空间的对象

源文件只是模块对象创建与初始化的输入材料,而非模块的本体。

二、模块对象的产生:从导入到执行

模块对象并非在程序启动时一次性创建,而是在导入语句触发时,由解释器按需构造。

当解释器执行如下语句时:

import math

其内部过程可以概括为以下几个阶段:

1、解析模块名并定位模块资源

2、创建一个新的模块对象

3、为模块对象初始化独立的全局命名空间

4、在该命名空间中执行模块代码

5、将模块对象绑定到当前命名空间中的名称

需要注意的是:

• 模块代码的执行,发生在模块对象的上下文中

• 模块对象在结构上先于模块代码执行而存在

因此,模块对象并不是“代码执行后的结果”,而是代码执行的载体。

三、模块对象与代码对象、帧对象的协作关系

模块对象并不独立完成执行,而是与代码对象、帧对象协同工作。

在模块导入过程中,三者的职责分工是:

代码对象:描述模块级代码的执行结构

模块对象:承载模块级全局命名空间

帧对象:承载模块代码的一次具体执行过程

当模块被首次导入时:

1、解释器为模块代码创建对应的代码对象

2、创建模块对象并初始化其

3、创建模块级帧对象,用于执行模块代码

模块级代码的执行,本质上就是:在模块对象的命名空间中,运行一次模块代码对应的帧对象

四、模块对象的核心语义:全局命名空间容器

模块对象最核心、也是最稳定的职责,是作为模块级全局命名空间的对象化载体

模块中定义的:

• 函数

• 类

• 字面量

• 其它名称

并不是“属于文件”,而是作为属性,绑定在模块对象之上。

例如:

math.sin

这里的 math.sin,本质上是在 math 模块对象的属性字典中查找名称 sin。

模块对象的 __dict__,正是解释器进行模块级名称解析的基础。

五、模块对象的缓存与唯一性

模块对象具有一个非常重要的运行期特性:缓存与复用。

当某模块被成功导入后,其模块对象会被存入 sys.modules。

后续对同一模块的导入请求,不会再次创建模块对象,而是直接返回已有的模块对象引用

因此:

• 模块对象在进程内具有事实上的唯一性。该唯一性依赖于 import 系统与 sys.modules 的约定,而非对象模型的硬性限制

• 模块级代码默认只会执行一次

这也是模块常被用于:

• 单例式资源管理

• 配置集中存放

• 全局状态维护

的根本原因。

六、模块对象的可变性与动态特征

模块对象并非只读容器,而是完全可变的运行期对象。

在程序运行过程中:

• 可以向模块对象动态添加属性

• 可以替换模块对象中的已有绑定

• 甚至可以在运行期构造新的模块对象

例如:

m.value = 42

这再次表明,模块并不是“静态结构”,而是一个可操作、可演化的对象。

七、模块对象与作用域边界

模块对象在 Python 的作用域模型中处于一个关键位置:模块级命名空间是函数局部作用域的外层,也是内置命名空间之前的最后一层

在 LEGB 规则中,G(Global)并非“程序全局”,而是“函数所隶属模块的命名空间”。

换言之,模块对象定义了“全局”这一概念的真实边界。

八、为什么模块必须是对象

如果模块不是对象,而只是代码容器,将无法支持以下能力:

• 模块缓存与重复导入消除

• 动态导入与插件机制

• 运行期模块替换与代理

• 模块级状态管理

通过将模块设计为对象,Python 得以:

• 将导入行为对象化

• 将命名空间与执行结果统一管理

• 将依赖关系纳入对象模型体系

小结

模块对象是 Python 对象模型中用于承载模块级执行结果与全局命名空间的一等对象。模块导入的本质,是创建模块对象并在其上下文中执行模块代码。通过将模块设计为可缓存、可变的运行期对象,Python 在保持语义简洁的同时,实现了高度动态、可组合的模块系统。

理解模块对象,有助于从对象模型层面把握 Python 的导入机制、作用域规则与运行期行为。


点赞有美意,赞赏是鼓励

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
定期存款年利率1.8%,都没有人存了,银行员工:储户都在想什么?

定期存款年利率1.8%,都没有人存了,银行员工:储户都在想什么?

平说财经
2026-02-08 21:53:14
辽宁巡视获“重大成果”说明了什么?

辽宁巡视获“重大成果”说明了什么?

夜半挑灯看吴钩
2026-02-08 21:14:38
乌克兰公布最新数据,历经4年作战乌军死亡5.5万,俄军死亡76.3万

乌克兰公布最新数据,历经4年作战乌军死亡5.5万,俄军死亡76.3万

碳基生物关怀组织
2026-02-05 23:11:54
妻子打麻将连赢十几年,真能通灵?丈夫进入地窖,发现惊天秘密

妻子打麻将连赢十几年,真能通灵?丈夫进入地窖,发现惊天秘密

农村情感故事
2025-09-07 07:51:19
好消息,开拓者队利拉德虽本赛季未出战,仍将参加三分球大赛

好消息,开拓者队利拉德虽本赛季未出战,仍将参加三分球大赛

好火子
2026-02-09 04:39:37
世仇大战!北卡0.4秒三分绝杀杜克,NBA状元大热布泽尔无力回天

世仇大战!北卡0.4秒三分绝杀杜克,NBA状元大热布泽尔无力回天

体育妞世界
2026-02-08 20:36:24
中国共产党中央军事委员会副主席张升民简历

中国共产党中央军事委员会副主席张升民简历

上观新闻
2025-10-23 18:17:07
国乒积分和奖金分配出炉,孙颖莎王楚钦顶峰相见,获42万+500积分

国乒积分和奖金分配出炉,孙颖莎王楚钦顶峰相见,获42万+500积分

球盲百小易
2026-02-09 03:31:04
深圳朋友当年买的惠州海景房:如今四千挂牌价,一年竟无人问津?

深圳朋友当年买的惠州海景房:如今四千挂牌价,一年竟无人问津?

捣蛋窝
2026-02-08 22:46:06
美智库公布兵推结果,日本一旦出兵台海,解放军首批打击目标浮现

美智库公布兵推结果,日本一旦出兵台海,解放军首批打击目标浮现

補懂事的孩紙
2026-02-09 00:52:53
金晨被罚1500后首露面,表情沉重心事重重,顶包助理陪同眼神警惕

金晨被罚1500后首露面,表情沉重心事重重,顶包助理陪同眼神警惕

古希腊掌管月桂的神
2026-02-08 17:14:37
辛巴宣布无力支付年终奖,辛选面临巨大变革!方丈等人被叫停!

辛巴宣布无力支付年终奖,辛选面临巨大变革!方丈等人被叫停!

陈意小可爱
2026-02-09 00:04:29
女生主动起来有多主动?网友:东北雨姐式才叫真主动

女生主动起来有多主动?网友:东北雨姐式才叫真主动

夜深爱杂谈
2026-02-06 20:23:42
你见过最窝囊的人是啥样?网友:原来大家都这么窝囊,我心病好了

你见过最窝囊的人是啥样?网友:原来大家都这么窝囊,我心病好了

带你感受人间冷暖
2026-01-06 00:05:11
虽然哈登和祖巴茨离队,但快船如今的阵容并没有想象中那么差!

虽然哈登和祖巴茨离队,但快船如今的阵容并没有想象中那么差!

田先生篮球
2026-02-07 22:38:38
霍尊也没想到,自己复出后,分手五年的陈露亲手撕碎他最后的体面

霍尊也没想到,自己复出后,分手五年的陈露亲手撕碎他最后的体面

无处遁形
2026-02-08 11:51:42
这一次,希拉里再次用实力证明,她不是替罪羊,而是蛇蝎妇!

这一次,希拉里再次用实力证明,她不是替罪羊,而是蛇蝎妇!

哄动一时啊
2026-02-08 11:45:19
小杨哥拿下TikTok第一网红,年销目标40亿美元

小杨哥拿下TikTok第一网红,年销目标40亿美元

出海老斯基
2026-02-06 17:19:17
突传死讯!知名影视大亨离世,洗肾多年心脏也做过支架,曾捧红多位艺人

突传死讯!知名影视大亨离世,洗肾多年心脏也做过支架,曾捧红多位艺人

你约电影
2026-02-08 20:32:29
官宣!每人赠送一台红旗轿车

官宣!每人赠送一台红旗轿车

吉刻新闻
2026-02-08 14:19:29
2026-02-09 04:51:00
MediaTea
MediaTea
专业的数字媒体、新媒体技术
1744文章数 74关注度
往期回顾 全部

科技要闻

为实现雄心勃勃的计划,特斯拉开始招人

头条要闻

日本选举结果 可能让国家进入相当危险阶段

头条要闻

日本选举结果 可能让国家进入相当危险阶段

体育要闻

“我就是王楚钦” 王楚钦霸气指向球衣背后

娱乐要闻

金晨被罚1500后首露面,表情沉重心事重重

财经要闻

宽基ETF开年大赎回,什么信号?

汽车要闻

VLA司机大模型优化 理想汽车OTA8.3版本更新

态度原创

本地
旅游
时尚
公开课
军事航空

本地新闻

围观了北京第一届黑色羽绒服大赛,我笑疯了

旅游要闻

云南红河州石屏县宝藏小城,有100多座四合院民居:适合旅居养老

伊姐周六热推:电视剧《成何体统》;电视剧《唐宫奇案》......

公开课

李玫瑾:为什么性格比能力更重要?

军事要闻

捐钱造航母的男孩登上军舰

无障碍浏览 进入关怀版