Python 的内建模块

原本只想说下内建函数的,但越往下说,感觉东西越多,索性就讨论下内建模块。在开始内建模块之前,先来看下Python虚拟机从启动到结束的整个过程(以下参考《Python学习笔记》):

1. 创建解释器和主线程状态对象,这是整个进程的根对象。

2. 初始化内置类型。数字、列表等类型都有专门的缓存策略需要处理。

3. 创建 __builtin__ 模块,该模块持有所有内置类型和函数。

4. 创建 sys 模块,其中包含了 sys.path、modules 等重要的运⾏期信息。

5. 初始化 import 机制。

6. 初始化内置 Exception。

7. 创建 __main__ 模块,准备运⾏所需的名字空间。

8. 通过 site.py 将 site-packages 中的第三⽅扩展库添加到搜索路径列表。

9. 执⾏⼊⼝ py ⽂件。执⾏前会将 __main__.__dict__ 作为名字空间传递进去。

10. 程序执⾏结束。

11. 执⾏清理操作,包括调⽤退出函数,GC 清理现场,释放所有模块等。

12. 终⽌进程。


从上面的过程中,内建函数是在__builtin__模块中,但是这里需要先导入__builtin__模块,原因后面会说。然后可以通过dir()来查看这个模块的属性:

>>> import __builtin__
>>> dir(__builtin__)

在列出的属性中,我们可以分成三类:首先是异常类型(黑色下划线起、始),也就是try能捕获的错误类型;第二类(橙色下划线起、始)是Python的特殊方法,第三类(红色下划线起、始)就是内建函数。


对于模块的每个属性,可通过help() 函数获得帮助。内建模块属性的好处就是,它不需要import就能直接用。而内建函数一共80个左右,这些函数集对应了Python各类对象的常用相关操作。关于更多内建函数的使用,也可参考官方文档:https://docs.python.org/2/library/functions.html#built-in-funcs

下面讨论下内建模块与之对应还有个模块名是:__builtins__,通常情况下,这个模块与__builtin__模块属性是一样的,因为__builtins__可看作是__builtin__的一个别名引用。它们的区别是:

1)可见性。对于__builtins__模块,在任何地方都是可见的。而__builtin__模块则需要导入才可见,这也是上面为什么在查看__builtin__属性时,需要导入的原因了;

2)在主模块中(__main__),两者没有区别;在非主模块中,__builtins__仅仅是__builtin__.__dict__这一个属性的引用,而非__builtin__本身。此时__builtins__是字典类型。__builtin__属性仍不变。

3)不同Python版本的差异,在Python2.X中,内建模块名是:__builtin__,而Python3.X中是:builtins。而__builtins__ 在两个版本中名字和属性都是一样的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值