本章总结

本章介绍了 Python 的执行模型 ——Python 如何运行程序 —— 并且探索了关于这个模型的一些常见变体:just-in-time 编译器等等。虽然你不需要真的掌握 Python 原理来编写 Python 脚本,但一旦开始编写程序时,对本章主题的一个基本了解将帮助你真正理解程序是如何运行的。在下一章中,你将真正开始运行一些自己的代码。但首先,请完成例行章节小测验。

测试你的知识:小测验

  1. 什么是 Python 解释器?
  2. 什么是源码?
  3. 什么是字节码?
  4. 什么是 PVM?
  5. 说出两个或更多个 Python 标准执行模型的变体。
  6. CPython,Jython 和 IronPython 不同在哪里?
  7. 什么是 Stackless 和 PyPy?

测试你的知识:答案

  1. 什么是 Python 解释器?
Python 解释器是一个运行你编写的 Python 程序的程序。
  1. 什么是源码?
源码是你为程序编写的语句 —— 它包含文本在文本文件中,通常以 .py 扩展名结尾。
  1. 什么是字节码?
字节码是你的程序在被 Python 编译后的更底层形式。Python 自动将字节码存储在扩展名为 .pyc 的文件中。
  1. 什么是 PVM?
PVM 是 Python 虚拟机 —— 解释被编译的字节码的 Python 运行时引擎。
  1. 说出两个或更多个 Python 标准执行模型的变体。
Psyco, Shed Skin 和 冻结的二进制文件都是执行模型的变体。另外,在下面两个问题中提及的 Python 可选实现也在某种方式上修改了模型 —— 通过替代字节码和虚拟机,或通过添加工具和 JIT。
  1. CPython,Jython 和 IronPython 不同在哪里?
CPython 是语言的标准实现。Jython 和 IronPython 分别实现了用于 Java 和 .NET 环境的 Python 程序;它们是 Python 的可选编译器。
  1. 什么是 Stackless 和 PyPy?
Stackless 是 Python 的增强版,注重并发;PyPy 是一个注重速度的 Python 的重新实现。PyPy 也是 Psyco 的继任者,且集成了 Psyco 所倡导的 JIT 概念。