Python 进阶手册¶
写给已经会写 Python 的人。目标是让你从"能写出来"走到"写得地道、写得稳,并且知道为什么这样写"。
22 章23 道练习题Python 3.14 实跑,doctest 逐字核对
这份手册适合谁¶
你大概处在这个阶段:
- 函数、类、循环、推导式都会写,能用 pip 装包,能写脚本解决手头的问题。
- 但看到装饰器、生成器、描述符、
asyncio时心里没底,读别人的库代码有点吃力。 - 代码能跑,但总觉得不够 Pythonic;不太清楚项目该怎么组织、测试该怎么写、类型标注怎么用。
读完并练完这份手册,你应该能做到:
- 说清楚 Python 对象模型:名字、引用、可变性、拷贝、哈希,写代码时不再踩这些坑。
- 熟练使用装饰器、生成器、上下文管理器、dataclass、类型标注,能读懂主流库的源码。
- 根据问题选对并发模型(线程、进程、
asyncio),并能写出正确的并发代码。 - 用 uv、ruff、mypy、pytest 搭起一个像样的工程,写出可维护、可测试的代码。
怎么用¶
- 先做自测。 每章开头有一个自测框,全部能答上来就可以跳过这一章,直接去做练习。
- 代码亲手敲。 不要只看。把示例敲进 REPL,改几个参数看结果怎么变。
- 先做练习再看答案。 每章末尾有练习,答案默认折叠。卡住超过 20 分钟再展开。
- 每个阶段做一个项目。 综合项目里按阶段列了 6 个项目,这是从"看懂"到"会用"的关键一步。
学习路线¶
各本手册合在一起的逐章路线(17 周,与冲刺计划逐周对应、每章是必学还是选学、不同岗位方向的重点、跨书的知识依赖)见学习路线图。下面是本书内部的顺序。
按顺序读最稳妥。如果时间紧,第一阶段和第四阶段优先。
| 阶段 | 章节 | 学完能做什么 | 建议用时 |
|---|---|---|---|
| 一、核心语言 | 对象模型 · 容器 · 函数 · 装饰器 · 迭代器与生成器 | 写出地道的 Python,不踩引用和可变性的坑 | 1~2 周 |
| 二、面向对象与建模 | 面向对象 · 数据建模 · 异常与上下文管理器 · 模式匹配 | 设计清晰的类和数据结构,正确处理错误和资源 | 1 周 |
| 三、类型与抽象 | 类型标注 · 协议与抽象基类 · 元编程 | 给代码加上有用的类型,读懂框架里的"魔法" | 1 周 |
| 四、工程化 | 常用标准库 · 项目与工具链 · pytest | 独立搭建、测试、发布一个 Python 项目 | 1 周 |
| 五、并发与性能 | 线程与进程 · asyncio · 性能优化 | 选对并发模型,定位并解决性能问题 | 1~2 周 |
| 六、查漏补缺 | 惯用法与常见坑 · 新版本特性 · 延伸阅读 | 查漏补缺,跟上语言的变化 | 随时 |
版本约定¶
- 以 Python 3.12 为基线。只在更新版本里才有的特性会标出版本,比如 3.13+。
- 所有
python代码块和>>>交互示例都在 Python 3.14.7 上自动跑过,输出与页面一致。 - 带
>>>的是交互式会话,照着敲进 REPL 就能看到同样的结果;不带的是完整代码,可以存成.py文件运行。
开始之前:准备环境¶
推荐用 uv 管理 Python 版本和虚拟环境,它比 pyenv + pip 快得多,也更省心。
# 安装 uv
curl -LsSf https://astral.sh/uv/install.sh | sh
# 安装最新的 Python,并建一个练习用的虚拟环境
uv python install 3.14
mkdir py-practice && cd py-practice
uv venv --python 3.14
source .venv/bin/activate
# 3.13 起的新 REPL 支持多行编辑、历史记录和彩色输出
python
REPL 里几个好用的东西:
help(obj)看文档,dir(obj)看有哪些属性。_是上一个表达式的结果。- 在新 REPL 里按 F3 进入粘贴模式,可以一次粘贴一大段代码。
python -i script.py运行完脚本后停在 REPL 里,方便检查变量。
发现错误或有更好的写法?在 GitHub 上编辑此页提交问题