CPython Internals

Python 2025-08-21

CPython Internals

  • 简体中文
  • 한국어
  • 如果需要在有更新时需要通知此存储库

该存储库是我的CPYTHON源代码的笔记/博客

试图说明Cpython实施的每个细节

 # based on version 3.8.0a0
cd cpython
git reset --hard ab54b9a130c88f708077c2ef6c4963b632c132b3

以下内容适合那些具有Python编程经验并对Python语言内部感兴趣的人,对于需要初学者或高级材料的人,请参阅很棒的Python-Books

目录

  • 对象
  • 模块
  • lib
  • 口译员
  • 扩大
  • 学习材料
  • 贡献
  • 执照

对象

  • dict
  • 长/int
  • Unicode/str
  • 列表(Timsort)
  • 元组
  • 字节
  • Bytearray(缓冲协议)
  • 漂浮
  • func(用户定义的方法)
  • 方法(内置方法)
  • 迭代
  • gen(Generator/coroutine/async发电机)
  • 班级(绑定方法/classMethod/staticMethod)
  • 复杂的
  • 枚举
  • 类型(mro/metaclass/class/实例的创建)

模块

  • io
    • Fileio
  • 泡菜

lib

  • RE(REGEX)
  • 异步

口译员

  • 吉尔(全球口译员锁)
  • GC(垃圾收集)
  • 内存管理
  • descr(属性访问工作/__ __/__ getAttribute __/__ getAttr __)
  • 例外(例外处理)
  • 模块(导入如何工作)
  • 框架
  • 代码
  • 插槽/__插槽__(在创建类/实例的创建中如何属性)
  • 线
  • PyObject(概述)

扩大

  • C API(配置文件Python代码和编写纯C扩展)
  • Cython(C扩展)
  • Boost C ++ Libaries(C ++扩展)
  • C ++扩展
    • 与Numpy集成
    • 绕过吉尔

语法

  • 编译阶段
    • DFA的语法/Metagrammar
    • CST到AST
    • AST到Python字节代码

学习材料

我只会推荐我读的内容

  • CPython Internals - 解释器和源代码概述(YouTube视频)
  • <>内部
  • <<>
  • Rushter(博客/英语)
  • 另一个Python内部博客(博客/英语)
  • Junnplus(博客/CN)
  • Manjusaka(博客/CN)
  • Aoik-Python的编译器系列(博客/英语)

贡献

欢迎各种贡献

  • 提交拉请请求
    • 如果您想分享您知道的任何知识
    • 发表新文章
    • 纠正任何技术错误
    • 正确的英语语法
    • 翻译
    • 还要别的吗
  • 打开一个问题
    • 任何建议
    • 任何问题
    • 正确的错误
    • 还要别的吗

执照

下载源码

通过命令行克隆项目:

git clone https://github.com/zpoint/CPython-Internals.git