跳转到正文
莫尔索随笔
返回

PEP 规范全面解读:Python 增强提案机制与实践指南

预计 2 分钟

第一时间捕获有价值的信号

PEP 的全称是 Python Enhancement Proposals,即 Python 增强提案或 Python 改进建议书,主要通过邮件列表讨论问题、提议等方式,经过 Python 核心开发者的 review 和认可,最终形成的正式文档。

PEP的作用

  1. 了解Python特性,以及为啥要设计这些特性,是怎么设计的,怎样更好地运用它们;
  2. 跟进社区动态,获知最佳实践方案,改进自己的代码;
  3. 参与热点议题讨论,或者提交新的PEP;
  4. 深入了解和更好的使用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),经过以下流程最好形成完整的提案:

Snipaste_2019-06-11_15-35-40.png

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开发