1 / 170
文档名称:

Python源码剖析.doc.doc

格式:doc   页数:170页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

Python源码剖析.doc.doc

上传人:755273190 2015/10/30 文件大小:0 KB

下载得到文件列表

Python源码剖析.doc.doc

相关文档

文档介绍

文档介绍:Python源码剖析
------Robert Chen (@)
目录
PYTHON源码剖析 1
目录 I
1 编译PYTHON 1
Python总体架构 1
Python源代码的组织 2
3
2 对象机制 6
对象 6
类型对象 9
对象间的继承和多态 12
引用计数 13
Python对象的分类 15
通向Python之路 16
3 整数对象 17
PyIntObject 17
PyIntObject对象的创建和维护 23
对象创建的三种途径 23
小整数对象 24
大整数对象 25
添加和删除 26
小整数对象池的初始化 32
Hack PyIntObject 33
4 字符串对象 37
PyStringObject与PyString_Type 37
创建PyStringObject对象 40
Intern机制 44
字符缓冲池 50
PyStringObject效率相关问题 53
Hack PyStringObject 56
5 PYLISTOBJECT对象 59
PyListObject对象 59
PyListObject的创建与维护 61
创建 61
添加 64
删除 69
PyListObject对象缓冲池 72
Hack PyListObject 73
6 字典对象PYDICTOBJECT 75
散列表概述 75
PyDictObject 77
PyDictObject的创建和维护 80
PyDictObject对象创建 80
元素搜索 82
插入与删除 90
PyDictObject对象缓冲池 100
Hack PyDictObject 102
7 最简单的PYTHON实现:SMALL PYTHON 107
Small Python 107
对象机制 107
解释过程 116
交互式环境 119
8 PYC文件解析 125
PyCodeObject与Pyc文件 125
Pyc文件的生成 129
一个PyCodeObject,多个PyCodeObject? 137
Python字节码 137
编译Python
Python总体架构
在最高的层次上,Python的整体架构可以分为四个主要的部分,整个架构如图1所示。在左边,是Python提供的大量的模块,库以及用户自定义的模块。比如在执行import os时,这个os就是Python内建的模块,当然用户还可以通过自定义模块来扩展Python系统。在本系列文章中,我们不会对这一部分进行过多的考察。
   
在图的右边,是Python的运行时环境,包括对象/类型系统(Object/Type structures),内存分配器(Memory Allocator)和运行时状态(Current State of Python)。运行时状态维护了解释器在执行字节码时在不同的状态之间切换的动作,我们可以将它视为一个巨大而复杂的有穷状态机。内存分配器则全权负责Python中创建对象时对内存的申请工作,实际上它就是Python运行时与C中malloc的一层接口。而对象/类型系统则包含了Python中存在的各种内建对象,比如整数,list和dict等等
   
在中间的部分,可以看到Python的核心,解释器(interpreter)。在解释器中,箭头的方向指示了Python运行时的数据流方向。其中Scanner对应词法分析,将文件输入的Python源代码或从命令行输入的一行行Python代码切分为一个一个的token;Parser对应语法分析部分,在Scanner的分析结果上进行语法分析,建立抽象语法树(AST);Compiler是根据建立的AST生成指令集合——Python字节码(byte code),就像Java编译器和C#编译器所做的那样;最后由Code Evaluator来解释并执行这些字节码。因此,Code Evaluator又可以被称为执行引擎。
   
图中,在Interpreter与右边的对象/类型系统,内存分配器之间的箭头表示“使用”关系;而与运行时状态之间的箭头表示修改关系,