Python总体架构
Python的整体架构主要分为3个部分:
1.左边是Python提供的大量模块、库以及用户自定义的模块。
2.右边是Python的运行时环境,包括对象/类型系统、内存分配器和运行时状态信息
3.中间部分是Python的核心——解释器(interpreter),或者称为虚拟机。在解释器中箭头的方向指示了Python运行过程中的数据流方向。其中,Scanner对应词法分析——将文件输入的Python源码或从命令行输入的Python源码切分为一个个token;Parser对应语法分析——在Scanner的分析结果上进行语法分析,建立抽象语法树(AST);Compiler根据建立的AST生成指令集合——Python字节码(Bytecode),就像Java编译器和C
Python源码组织
1.Include目录:包含Python提供的所有头文件。
2.Lib目录:包含Python自带的所有标准库,且都是用Python语言编写的。
3.Modules目录:包含所有用C语言编写的模块,比如math、hashlib等。
4.Parser目录:包含Python解释器中的Scanner和Parser部分,即对Python源码进行词法分析和语法分析的部分。
5.Objects目录:包含所有Python的内置对象,包括整数、list、dict等。同时,该目录还包括Python在运行时需要的所有内部使用对象的实现。
6.Python目录:包含Python解释器中的编译(Compiler)和执行引擎部分,是Python运行的核心所在。
7.PCbuild目录:包含Visual Studio 2003的工程文件,对于Python源码的研究就从这里开始。
8.Programs目录:包含Python二进制可执行文件的源码。
Python对象
1.对象是Python最核心的一个概念。在Python的世界,一切都是对象。面向对象理论中的类和对象在Python中都是通过Python内的对象来实现的。
2.在Python中,对象是为C中的结构体在堆上申请的一块内存。
3.在Python中,对象一旦被创建,它在内存中的大小就是不变的。