# 一、简介

Python 的某些功能看起來是否像魔法？如：用字典查找项目比在列表上循环要快得多？迭代器是如何在生成值的时候记住每一个变量的状态？为什么你不需要像对待其他语言那样分配内存呢？问题的答案是 CPython-最流行的Python运行时，其是用人可阅读的 C 代码和 Python 代码编写而成。

CPython 抽象了底层的 C 平台和操作系统的复杂度。它使线程变得简单和跨平台。它减轻了 C 语言中内存管理的痛苦并使其变得很简单。CPython 为编写 Python 代码的开发者提供了一个编写可扩展及高性能应用的平台。在你作为 Python 开发者的某一个阶段，你需要理解 CPython 是如何工作的。这些抽象并不是最完美的，甚至存有瑕疵。

一旦你理解了 CPython 的工作原理，那么你就可以充分利用其强大的能力并优化你的应用。本书会向你介绍 CPython 的概念、想法和技术原理。

在本书中，你将学到 CPython 内部背后的主要概念，并学习如何：

* 阅读和浏览源代码；
* 从源码重新编译 CPython；
* 修改 Python 语法并重新编译出你的 CPython 版本；
* 浏览和理解某些概念的内部工作原理，如：列表、字典和迭代器等；
* 掌握 CPython 的内存管理技能；
* 通过并行和并发扩展你的 Python 代码；
* 给核心类型添加新功能；
* 运行测试套；
* 对 Python 代码和运行时性能进行分析和基准测试；
* 像一个专家一样调试 C 和 Python 代码；
* 编译或者升级 CPython 库中的组件，并使其能为你的应用做出贡献；

花点时间学习每一章节内容并尝试各个 demo 和互动内容。当你掌握核心概念时，你会感到一种成就感，这些概念将使你成为一个更好的 Python 程序员。


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://hai-shi.gitbook.io/cpython-internals/1-introduction.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
