python 内置命名空间、标准库、模块相关概念
1|0内置命名空间
python 解释器启动后就可以直接使用一些函数,常量,类型,异常等。保存这些数据的空间统称内置命名空间。
对于内置命名空间中最常用的就是内置函数。
内置函数
:
Python 解释器自带的函数叫做内置函数,这些函数可以直接使用,不需要import
就可以使用。Python 解释器一旦启动,所有的内置函数都生效。
内置常量
python对于变量的查找,模块的查找顺序是LEGB
。
L
: Local 局部命名空间
E
: Enclosing 内嵌命名空间
G
: Golbal 全局命名空间
B
: Builtin 内置命名空间
所以内置命名空间是查找的最后一道屏障,如果这里也没有,那这个变量就是没有定义。
2|0python 标准库
Python 标准库相当于解释器的外部扩展,它并不会随着解释器的启动而启动,要想使用这些外部扩展,必须提前导入。
Python 标准库非常庞大,包含了很多模块,要想使用某个函数,必须提前import
对应的模块,否则函数是无效的。
和内置命名空间的关系:
- 内置命名空间中的函数,变量,类型,异常都是标准库的一部分
- 内置空间在python解释器启动时加载内存,标准库有部分模块会记载到内存
- 内置空间不需要import就能使用模块,标准库需要import之后才能使用
特征
Python 标准库非常庞大,所提供的组件涉及范围十分广泛,正如以下内容目录所显示的。这个库包含了多个内置模块 (以 C 编写),Python 程序员必须依靠它们来实现系统级功能,例如文件 I/O,此外还有大量以 Python 编写的模块,提供了日常编程中许多问题的标准解决方案。其中有些模块经过专门设计,通过将特定平台功能抽象化为平台中立的 API 来鼓励和加强 Python 程序的可移植性。
python标准库有200多个模块和包,具体可见上一篇博客 python标准库
3|0加载到内存中的模块
在介绍内置命名空间时我们知道内置函数,变量,类型,异常都随着解释器的启动加载到内存中。那么能不能看到所有加载到内存中的模块呢?
sys.modules
模块就是查找所有内存中的模块的方法。
sys.modules
Python中所有加载到内存的模块都放在sys.modules。sys.modules是一个全局字典
功能:
字典sys.modules对于加载模块起到了缓冲的作用,当import一个模块时首先会在这个列表中查找是否已经加载了此模块,如果加载了则只是将模块的名字加入到正在调用import的模块的Local名字空间中。如果没有加入则将模块加入到当前空间,并且也加入到sys.modules中。再次import模块则不会在加在到内存中。
使用
sys.modules
是一个字典,key就是模块的名字, value是模块的对象。
sys.modules.keys()
对于sys.modules中的模块是可以直接使用的。通过sys.modules找到该模块就可以直接使用内存中的模块
如不需要import os
就可以直接使用 os 模块
但是如果直接使用os.getcwd()
就会报错。
如果再imports os
,os模块也不会再次加载到内存中,因为内存中已经存在该模块对象了。
再次导入在内存中会创建一个变量 os 指向内存中的 os模块对象。
缓存功能
当import 一个模块之后,就会在sys.modules中保存模块,在全局范围中,如果再次导入该模块,则不会重复加载到内存。
__EOF__

本文链接:https://www.cnblogs.com/goldsunshine/p/15085333.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
2017-07-31 OpenFlow协议1.0及1.3版本分析