Python 源码结构简介

开始研究 Python 内部实现前,我们需要先获得一份源码。

注解

Python 除了官网提供的 C 语言实现,还有其他杂七杂八的实现。 例如, Jython 基于 Java 实现,可直接调用 Java 类库。

本专栏介绍官方 CPython 的实现,后续讨论如无特别说明,均针对 CPython

Python 官网 ,我们可以下载最新的 Python 解释器,也可以下载到最新的源码。 Python 解释器是源码的编译结果——对源码进行编译,可以得到 Python 解释器程序。

在官网 源码下载 页面,我们可以找到所有 Python 版本的源码。 专栏撰写时, Python 3 已经是主流版本。 因此,我们选用最新的稳定版本 3.7.4 作为研究对象。

进入 Python 3.7.4 下载页面:https://www.python.org/downloads/release/python-374/ , 我们可以看到一个这样的下载列表:

../../_images/75808480f1f29e94dc8b38b928ee6fda.png

这个列表前两个是 Python 源码,分别是 gz 以及 xz 格式。 选择其中一个下载并解压缩,我们就得到一份完整的 Python 源码。

$ wget https://www.python.org/ftp/python/3.7.4/Python-3.7.4.tgz
$ tar -xf Python-3.7.4.tgz

进入源码目录,我们可以看到大致这样的目录结构:

$ cd Python-3.7.4
$ tree -L 1
.
├── CODE_OF_CONDUCT.rst
├── Doc
├── Grammar
├── Include
├── LICENSE
├── Lib
├── Mac
├── Makefile.pre.in
├── Misc
├── Modules
├── Objects
├── PC
├── PCbuild
├── Parser
├── Programs
├── Python
├── README.rst
├── Tools
├── aclocal.m4
├── config.guess
├── config.sub
├── configure
├── configure.ac
├── install-sh
├── m4
├── pyconfig.h.in
└── setup.py

接下来,我们快速浏览几个重要的子目录:

  • Doc ,文档相关;

  • Grammar ,语法规则;

  • Include ,头文件;

  • Lib ,标准库;

  • Parser ,语法分析相关;

  • Python ,虚拟机执行相关;

  • Objects ,内建对象实现;

专栏重点介绍 Python 内建对象 设计思路,以及 虚拟机 执行过程,包括 函数机制 、以及 类机制 。 基于这个目标,我们将重点研究 IncludePython 以及 Objects 目录中的源码。

现在,请自备源码,我们一起踏上新征程!

更多章节

洞悉 Python 虚拟机运行机制,探索高效程序设计之道!

到底如何才能提升我的 Python 开发水平,向更高一级的岗位迈进? 如果你有这些问题或者疑惑,请订阅我们的专栏,阅读更多章节:

https://cdn.fasionchan.com/python-source-course-qrcode.png

附录

订阅更新,获取更多学习资料,请关注我们的 微信公众号

微信搜索:小菜学编程

创作不易,如果觉得我们写得还行,就请我们喝杯咖啡吧😋

微信搜索:小菜学编程