CPython 源代码¶
本节概述了 CPython 的代码结构,并总结了模块和内置函数的文件位置。
源代码布局¶
对于 Python 模块,典型布局为
Lib/<module>.py
Modules/_<module>.c
(如果还有 C 加速器模块)Lib/test/test_<module>.py
Doc/library/<module>.rst
对于 扩展模块,典型布局为
Modules/<module>module.c
Lib/test/test_<module>.py
Doc/library/<module>.rst
对于 内置类型,典型布局为
Objects/<builtin>object.c
Lib/test/test_<builtin>.py
对于 内置函数,典型布局为
这些布局的一些例外情况是
内置类型
int
位于Objects/longobject.c
内置类型
str
位于Objects/unicodeobject.c
内置模块
sys
位于Python/sysmodule.c
内置模块
marshal
位于Python/marshal.c
仅限 Windows 的模块
winreg
位于PC/winreg.c
其他参考¶
CPython 代码库不断变化和发展。以下是有关 CPython 架构的一些参考示例,旨在帮助你了解 CPython 内部及其演变
标题 |
简介 |
作者 |
版本 |
---|---|---|---|
从解析器、AST、符号表和对象进行代码演练 |
Louie Lu |
3.7.a0 |
|
缺少的 Python AST 文档 |
Thomas Kluyver |
3.6 |
|
CPython REPL 工作原理指南 |
Guido van Rossum |
3.5 |
|
CPython 异步 I/O、生成器和协程的工作原理 |
Philip Guo |
3.5 |
|
在 C 中编码 Python 扩展的可靠模式 |
Paul Ross |
3.4 |
|
CPython 源代码指南 |
Anthony Shaw |
3.8 |
标题 |
简介 |
作者 |
版本 |
---|---|---|---|
ceval、对象、pystate 和其他主题 |
Yaniv Aknin |
3.1 |
|
对象、符号表和其他主题 |
Eli Bendersky |
3.x |
|
从解析器、AST、符号表和对象进行代码演练 |
Prashanth Raghu |
2.7.12 |
|
从源代码到生成器的代码演练 |
Philip Guo |
2.7.8 |