大家好,我是程序员晚枫。

今天聊一个 Python 圈最"硬核"的话题:PEP。

PEP 是 Python Enhancement Proposals(Python 增强提案)的缩写

简单说:Python 所有的语法、特性、规则,全部藏在 PEP 里

👉 官方 PEP 页面:https://peps.python.org/

为什么 Python 3.12 有了更好的错误提示?

为什么 Python 3.13 默认有了 GIL 选项?

为什么 f-string 在 3.12 之前有那么多限制?

答案全在 PEP 里。

今天这篇文章,用最白话的方式,给你讲透 PEP。


一、PEP 到底是什么?

PEP 全称:Python Enhancement Proposals(Python 增强提案)

它是 Python 的"宪法"。

Python 的每一个新特性、每一个规则变化,都源自一个 PEP

类比一下

你熟悉的对应 Python 的
国家法律PEP
法律条文单个 PEP 文档
宪法PEP 1(PEP 流程本身)
民法典PEP 8(代码风格)
临时法规Accepted PEP(已接受但未实施)

所有的 Python 特性,都是"先写 PEP → 社区讨论 → 接受 → 实施"这个流程。


二、为什么 PEP 这么重要?

重要性 1:决定 Python 走向

  • Python 不是某一家公司的产品
  • 它是全球社区共同维护
  • PEP 就是社区讨论的"正式文件"
  • 你想给 Python 加新特性?可以,先写个 PEP

重要性 2:了解所有特性的来源

  • 你用的每个语法,背后都有 PEP
  • 想知道 Python 3.13 为什么有 GIL 选项?看 PEP 703
  • 想知道 f-string 3.12 限制为什么取消?看 PEP 701

重要性 3:面试经常问

  • "Python 是如何管理新特性的?"
  • 答"通过 PEP 机制"就是满分答案
  • 比答"Guido 决定"高到不知道哪里去

重要性 4:写代码遇到奇怪语法时

  • 看到奇怪的语法、奇怪的特性
  • 去 PEP 搜一下,立刻明白为什么
  • PEP 是 Python 的唯一真理来源

三、PEP 的 5 大状态

每个 PEP 都有自己的"人生状态"

状态含义是否生效
Draft草案❌ 还在讨论
Accepted已接受⚠️ 接受但可能未实施
Provisional暂时接受⚠️ 接口可能还会变
Final / Finished最终版✅ 已完成、已实施
Rejected / Withdrawn拒绝/撤回❌ 不会实施
Superseded被取代❌ 被新 PEP 取代

举个例子

  • PEP 8(代码风格)状态:Active永久有效
  • PEP 703(GIL 可选)状态:Accepted(3.13)3.13 开始实施
  • PEP 622(结构化模式匹配)状态:Final3.10 实施

四、4 大 PEP 类型

官方把 PEP 分成 4 种类型

类型 1:Standards Track(标准类)

  • S:核心语言特性
  • SA:标准库相关
  • SF:解释器、运行时相关

例子

  • PEP 20(Python 之禅)→ S
  • PEP 703(GIL 可选)→ SA
  • PEP 622(结构化模式匹配)→ SF

类型 2:Informational(信息类)

  • I:提供信息、规范
  • IA:社区信息
  • IF:规范、接口规范

例子

  • PEP 20(The Zen of Python)→ IA
  • PEP 249(数据库 API 规范 v2.0)→ IF

类型 3:Process(流程类)

  • P:治理、流程
  • PA:Python 治理相关

例子

  • PEP 1(PEP 流程本身)→ PA
  • PEP 13(Python 语言治理)→ PA

类型 4:Meta-PEP

  • 关于 PEP 流程本身的 PEP
  • "元 PEP"
  • 很少见

五、Python 必读的 10 大 PEP

我精选了 10 个"必读 PEP",看完你就看懂了 Python

1️⃣ PEP 1:PEP Purpose and Guidelines

2️⃣ PEP 8:Style Guide for Python Code

3️⃣ PEP 20:The Zen of Python

1
2
3
4
5
6
7
8
>>> import this
The Zen of Python, by Tim Peters

Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Readability counts.
...

4️⃣ PEP 257:Docstring Conventions

5️⃣ PEP 484:Type Hints

6️⃣ PEP 526:Syntax for Variable Annotations

7️⃣ PEP 622 / 634 / 635 / 636:结构化模式匹配

1
2
3
4
5
6
7
8
# match-case(3.10+)
match status:
case 200:
return "OK"
case 404:
return "Not Found"
case _:
return "Unknown"

8️⃣ PEP 703:Making the GIL Optional

9️⃣ PEP 8 之上的 PEP 8 扩展

  • Black、Flake8、isort 等工具的 PEP
  • 实际就是 PEP 8 的"工程化实现"
  • 团队协作必读

🔟 PEP 0:PEP Index


六、PEP 数字是怎么分配的?

你可能好奇:为什么有些 PEP 数字大,有些小?

规则很简单

  • PEP 1-999:早期 PEP
  • PEP 1000+:中期 PEP
  • PEP 6000+:治理相关
  • PEP 8000+:治理元 PEP
  • PEP 9999+:未来 PEP

特别大的数字

  • PEP 3333(WSGI 1.0.1)
  • PEP 8000(Python 治理提案)
  • PEP 8107(2026 届理事会选举)

所以 PEP 数字大 ≠ 重要性低,数字小 ≠ 重要性高。


七、3 个必收藏的 PEP 页面

1️⃣ PEP 0 索引页

2️⃣ PEP 8 风格指南

3️⃣ PEP 20 之禅


八、PEP 在实际工作中的应用

应用 1:代码评审

  • 同事代码风格不规范?引用 PEP 8 给他看
  • 比"我觉得你写得不规范"有说服力 100 倍

应用 2:项目决策

  • 选 Python 3.12 还是 3.13?
  • 看 PEP 690/703/701 就行——这些都是新特性来源

应用 3:学习新特性

  • 3.13 出了新特性?
  • 去 PEP 搜对应编号
  • 看到原始讨论、官方解释、迁移指南

应用 4:面试

  • 面试官问:"Python 新特性怎么决定?"
  • 答"通过 PEP 流程,有 Draft、Accepted、Final 等状态"满分
  • 比答"Guido 决定的"高 100 倍

应用 5:写技术文章

  • 写 Python 教程?
  • 引用 PEP 链接 显得专业
  • 读者点开就是官方文档

九、3 个 PEP 的实战案例

案例 1:f-string 进化史

版本变化对应 PEP
3.6引入 f-stringPEP 498
3.12取消反斜杠/引号限制PEP 701
3.13性能优化PEP 736(待定)

想用 f-string 全部能力?看 PEP 701 就行。

案例 2:GIL 进化史

版本变化对应 PEP
3.12添加 free-threaded 实验支持PEP 703
3.13优化 free-threadedPEP 703 实施
3.14+进一步优化持续中

想知道 GIL 未来?看 PEP 703 讨论。

案例 3:match-case 进化史

版本变化对应 PEP
3.10引入 match-casePEP 634, 635, 636
3.12模式匹配增强PEP 634 持续

想用 match 全部能力?看 PEP 634-636。


十、PEP 之外的 3 个 Python 官方资源

想深入了解 Python 生态?这 3 个资源必看

1️⃣ Python 官方文档

2️⃣ Python 版本生命周期

3️⃣ Python 官方博客


十一、最后的最后

PEP 这事,3 句话总结

  1. PEP 是什么:Python 增强提案,Python 的"宪法"
  2. 为什么要看:了解所有特性的来源,写代码不再迷茫
  3. 从哪里开始https://peps.python.org/ → 必读 PEP 8、PEP 20

PEP 是 Python 圈最被低估的资源。

99% 的 Python 学习者,从来不读 PEP。

而那 1% 读 PEP 的人,已经理解了 Python 的设计哲学。

从今天开始,遇到 Python 任何问题,第一反应不是"百度"——而是"查 PEP"。

这是 Python 学习者从入门到精通的分水岭。


相关阅读


科技不高冷,AI很好用。
我是晚枫,关注我,带你一起玩AI!

🎓 AI 编程实战课程

程序员晚枫专注AI编程培训,通过 《50讲 · AI编程训练营》,让小白也能用AI做出实际项目。帮你从零上手!