
作者:豌豆花下猫
来源:Python猫
花下猫语:最近我发现了一个《Python behind the scenes》系列文章,它计划深度地剖析python 幕后的 CPython 解释器的工作原理。作者专门建了一个网站来发布该系列文章,目前已发布 4 篇。这些文章都挺长的,想要翻译好,并不容易。而本文接下来的内容,是该作者分享的一篇简短的参考材料,我先翻译出来热热身~~
原文:https://tenthousandmeters.com/materials/python-behind-the-scenes-a-list-of-resources
作者:Victor Skvortsov
译者:豌豆花下猫(“Python猫”公众号作者)
声明:本翻译是出于交流学习的目的,基于 CC BY-NC-SA 4.0 授权协议。为便于阅读,内容略有改动。
在研究 CPython 以及写作《CPython behind the scenes》系列时,我发现了一些很有用的文档、帖子和演讲。它们确实是一些非常好的资源,但是并不能回答我的太多问题。这就是为什么我最终决定要分享自己在学习 CPython 源代码时的经验。
>> Python 文档。在所有与 Python 相关的主题上,Python 文档几乎都是第一的查阅选择。虽然它缺少涵盖解释器原理的特殊内容,但是 Python/C API 文档描述了 CPython 的公共接口和一些实现细节。它附录了一份《the tutorial for C programmers》,该教程展示了如何使用 C 语言来扩展 Python 程序,或者将 Python 嵌入到 C 应用程序中。我敢打赌,只要认真地完成这些阅读内容,你就会对 CPython 的工作原理相当地了解。
>> PEP。虽然没有哪个 PEP 描述了解释器的总体设计,但是对 Python 的大多数主要更改,都有相应的提案。PEP 很赞。它们提供了技术和历史的背景。文档的作者们习惯于适当地引用相关的 PEP。例如,Python/C API 的参考内容中至少提到了一次 PEP-432,描述了 CPython 新的初始化序列的转变,以及 PEP-587(这是其部分的实现)。
>> Obi Ike-Nwosu 写的《 Inside The Python Virtual Machine》一书。在我看来,它是关于 CPython 内部原理的最全面、最准确的资料。
>> Anthony Shaw 写的《Your Guide to the CPython Source Code》。这个标题不言而喻。如果想直接研究源代码,你应该选择它!
>> Philip Guo 写的《CPython internals: A ten-hour codewalk through the Python interpreter source code》。如果你想要更为简单的介绍,那么这些讲座视频可能是最好的开始。它们基于 CPython 2.7,但是原理保持不变。
>> Yaniv Aknin 写的《Python’s Innards series》,介绍的是 CPython 3 VM 的早期版本,但仍然非常有用。
>> Eli Bendersky 写的《Python internals》文章。关于符号表(symbol table)的帖子特别好。
>> Stupid Python Ideas 博客。有各种 Python 相关主题的文章。有些涉及 CPython 内部原理。强烈推荐,但可能不好检索。
>> Allison Kaptur 写的《A Python Interpreter Written in Python》。它介绍了一个玩具版 Python VM,能够执行真正的 Python 字节码。这作为解释器的入门介绍,可能会很有用。但是,我觉得不必要花大量时间研究一个玩具示例,因为 CPython 本身并没有那么复杂。
>> Eric Snow 的演讲《To GIL or not to GIL》。它的主题是子解释过程。我喜欢它的地方是 Eric 在开头描述 CPython 架构的方式。
参考材料:
1、Python behind the scenes (https://tenthousandmeters.com/)
2、the tutorial for C programmers (https://docs.python.org/3.9/extending/index.html#extending-index)
3、Inside The Python Virtual Machine (https://leanpub.com/insidethepythonvirtualmachine)
4、Your Guide to the CPython Source Code (https://realpython.com/cpython-source-code-guide/)
5、CPython internals: A ten-hour codewalk through the Python interpreter source code (https://www.youtube.com/playlist?list=PLzV58Zm8FuBL6OAv1Yu6AwXZrnsFbbR0S)
6、Python’s Innards series (https://tech.blog.aknin.name/category/my-projects/pythons-innards/)
7、Python internals (https://eli.thegreenplace.net/tag/python-internals)
8、Stupid Python Ideas (http://stupidpythonideas.blogspot.com/)
9、A Python Interpreter Written in Python (http://aosabook.org/en/500L/a-python-interpreter-written-in-python.html)
10、To GIL or not to GIL (https://www.youtube.com/watch?v=7RlqbHCCVyc)
——热门课程推荐:
想学习PYTHON数据分析与金融数字化转型精英训练营,您可以点击>>>“人才转型”了解课程详情;
想从事业务型数据分析师,您可以点击>>>“数据分析师”了解课程详情;
想从事大数据分析师,您可以点击>>>“大数据就业”了解课程详情;
想成为人工智能工程师,您可以点击>>>“人工智能就业”了解课程详情;
想了解Python数据分析,您可以点击>>>“Python数据分析师”了解课程详情;
想咨询互联网运营,你可以点击>>>“互联网运营就业班”了解课程详情;
数据分析咨询请扫描二维码
若不方便扫码,搜微信号:CDAshujufenxi
你是不是也经常刷到别人涨粉百万、带货千万,心里痒痒的,想着“我也试试”,结果三个月过去,粉丝不到1000,播放量惨不忍睹? ...
2025-07-21我是陈辉,一个创业十多年的企业主,前半段人生和“文字”紧紧绑在一起。从广告公司文案到品牌策划,再到自己开策划机构,我靠 ...
2025-07-21左偏态分布转正态分布:方法、原理与实践 左偏态分布转正态分布:方法、原理与实践 在统计分析、数据建模和科学研究中,正态分 ...
2025-07-21CDA 数据分析师的职业生涯规划:从入门到卓越的成长之路 在数字经济蓬勃发展的当下,数据已成为企业核心竞争力的重要来源,而 CD ...
2025-07-21MySQL执行计划中rows的计算逻辑:从原理到实践 MySQL 执行计划中 rows 的计算逻辑:从原理到实践 在 MySQL 数据库的查询优化中 ...
2025-07-21在AI渗透率超85%的2025年,企业生存之战就是数据之战,CDA认证已成为决定企业存续的生死线!据麦肯锡全球研究院数据显示,AI驱 ...
2025-07-2035岁焦虑像一把高悬的利刃,裁员潮、晋升无望、技能过时……当职场中年危机与数字化浪潮正面交锋,你是否发现: 简历投了10 ...
2025-07-20CDA 数据分析师报考条件详解与准备指南 在数据驱动决策的时代浪潮下,CDA 数据分析师认证愈发受到瞩目,成为众多有志投身数 ...
2025-07-18刚入职场或是在职场正面临岗位替代、技能更新、人机协作等焦虑的打工人,想要找到一条破解职场焦虑和升职瓶颈的系统化学习提升 ...
2025-07-182025被称为“AI元年”,而AI,与数据密不可分。网易公司创始人丁磊在《AI思维:从数据中创造价值的炼金术 ...
2025-07-18CDA 数据分析师:数据时代的价值挖掘者 在大数据席卷全球的今天,数据已成为企业核心竞争力的重要组成部分。从海量数据中提取有 ...
2025-07-18SPSS 赋值后数据不显示?原因排查与解决指南 在 SPSS( Statistical Package for the Social Sciences)数据分析过程中,变量 ...
2025-07-18在 DBeaver 中利用 MySQL 实现表数据同步操作指南 在数据库管理工作中,将一张表的数据同步到另一张表是常见需求,这有助于 ...
2025-07-18数据分析师的技能图谱:从数据到价值的桥梁 在数据驱动决策的时代,数据分析师如同 “数据翻译官”,将冰冷的数字转化为清晰的 ...
2025-07-17Pandas 写入指定行数据:数据精细化管理的核心技能 在数据处理的日常工作中,我们常常需要面对这样的场景:在庞大的数据集里精 ...
2025-07-17解码 CDA:数据时代的通行证 在数字化浪潮席卷全球的今天,当企业决策者盯着屏幕上跳动的数据曲线寻找增长密码,当科研人员在 ...
2025-07-17CDA 精益业务数据分析:数据驱动业务增长的实战方法论 在企业数字化转型的浪潮中,“数据分析” 已从 “加分项” 成为 “必修课 ...
2025-07-16MySQL 中 ADD KEY 与 ADD INDEX 详解:用法、差异与优化实践 在 MySQL 数据库表结构设计中,索引是提升查询性能的核心手段。无论 ...
2025-07-16解析 MySQL Update 语句中 “query end” 状态:含义、成因与优化指南 在 MySQL 数据库的日常运维与开发中,开发者和 DBA 常会 ...
2025-07-16如何考取数据分析师证书:以 CDA 为例 在数字化浪潮席卷各行各业的当下,数据分析师已然成为企业挖掘数据价值、驱动决策的 ...
2025-07-15