第一时间捕获有价值的信号
PEP 的全称是 Python Enhancement Proposals,即 Python 增强提案或 Python 改进建议书,主要通过邮件列表讨论问题、提议等方式,经过 Python 核心开发者的 review 和认可,最终形成的正式文档。
PEP的作用
- 了解Python特性,以及为啥要设计这些特性,是怎么设计的,怎样更好地运用它们;
- 跟进社区动态,获知最佳实践方案,改进自己的代码;
- 参与热点议题讨论,或者提交新的PEP;
- 深入了解和更好的使用Python的一本指南。
PEP内容组成
- 从官网可知PEP主要分成三类:
Informational
- 这类 PEP 就是提供信息,告知信息,指导信息等。如 PEP 20(The Zen of Python)、PEP 404 (Python 2.8 Un-release Schedule,即宣告不会有Python2.8版本)。
Process
- 这类 PEP 主要是关于Python的信息。如 PEP 1(PEP Purpose and Guidelines,即关于PEP的指南)、PEP 347(Migrating the Python CVS to Subversion,即关于迁移Python代码仓)。
Standards Track
- 这类PEP主要描述了Python的新功能和新实践(implementation),是数量最多的提案。如 PEP 3333(Python Web Server Gateway Interface v1.0.1,WSGI规范)
PEP形成过程
- 每个PEP起初都是一个草案(Draft),经过以下流程最好形成完整的提案:

A – Accepted (Standards Track only) or Active proposal 已接受(仅限标准跟踪)或有效提案
D – Deferred proposal 延期提案
F – Final proposal 最终提案
P – Provisional proposal 暂定提案
R – Rejected proposal 被否决的提案
S – Superseded proposal 被取代的提案
W – Withdrawn proposal 撤回提案
值得一读的PEP
- PEP 0 — Index of Python Enhancement Proposals
- PEP 7 — Style Guide for C Code,C扩展
- PEP 8 — Style Guide for Python Code,编码规范(必读)
- PEP 20 — The Zen of Python,Python之禅
- PEP 202 — List Comprehensions,列表生成式
- PEP 274 — Dict Comprehensions,字典生成式
- PEP 234 — Iterators,迭代器
- PEP 257 — Docstring Conventions,文档注释规范
- PEP 282 — A Logging System,日志模块
- PEP 289 — Generator Expressions,生成器表达式
- PEP 318 — Decorators for Functions and Methods,装饰器
- PEP 342 — Coroutines via Enhanced Generators,协程
- PEP 343 — The “with” Statement,with语句
- PEP 380 — Syntax for Delegating to a Subgenerator,yield from语法
- PEP 405 — Python Virtual Environments,虚拟环境
- PEP 492 — Coroutines with async and await syntax,async/await语
- PEP 525 — Asynchronous Generators,异步生成器
- PEP 3333 — Python Web Server Gateway Interface v1.0.1,Web开发