Python 是一种半编译半解释型运行环境。首先,它会在模块 "载入" 时将源码编译成字节码 (Byte
Code)。然后,这些字节码会被虚拟机在一个 "巨大" 的核心函数里解释执行。这是致使 Python 性
能较低的重要缘由,好在如今有了内置 Just-in-time 二次编译器的 PyPy 可供选择。
当虚拟机开始运行时,它经过初始化函数完成整个运行环境设置:缓存
- 建立解释器和主线程状态对象,这是整个进程的根对象。
- 初始化内置类型。数字、列表等类型都有专门的缓存策略须要处理。
- 建立 __builtin__ 模块,该模块持有全部内置类型和函数。
- 建立 sys 模块,其中包含了 sys.path、modules 等重要的运⾏期信息。
- 初始化 import 机制。
- 初始化内置 Exception。
- 建立 __main__ 模块,准备运行所需的名字空间。
- 经过 site.py 将 site-packages 中的第三方扩展库添加到搜索路径列表。
- 执行入口py 文件。执行前会将 __main__.__dict__ 做为名字空间传递进去。
- 程序执行结束。
- 执行清理操做,包括调用退出函数,GC 清理现场,释放全部模块等。
- 终止进程。