# 二、获取 CPython 源码

当你在控制台输入 `python` 或者从 [python.org](https://www.python.org/) 安装 Python 发行版本时，你就已经在运行 **CPython** 程序了。CPython 是众多 Python 实现中的一种，由不同的开发者团队运维和开发。你可能听说过的[另外一些 Python 实现](https://www.python.org/download/alternatives/)，如：[PyPy](https://pypy.org/)，[Cython](https://cython.org/) 以及 [Jython](https://www.jython.org/)。

CPython 的独特之处在于它包含了运行时和所有其他 Python 实现都要使用的通用语言规范。CPython 是 Python 语言的“官方”或参考实现。

**Python 语言规范**是描述了 Python 语言的文档。比如：它定义了 `assert` 是一个保留关键词、 `[]` 用于索引、切片和创建空列表。

想想你期望从 Python 发行版本中获得的功能：

* 当你输入 `python` 但不带入文件或者模块时，它会返回一个交互式解释器（REPL）；
* 你可以从标准库中导入内置模块，如：`json` ，`csv` 和 `collections` ；
* 你可以使用 `pip` 从网上安装软件包；
* 你可以使用内置的 `unittest` 库测试你的应用程序。

这些都是 CPython 发行版本的一部分，它实际上不仅仅是一个编译器。

在本书中，你将探索 CPython 发行版本的不同部分：

* 语言规范；
* 编译器；
* 标准库模块；
* 核心类型；
* 测试套。
