简单了解python PEP的一些知识

  

  

或许你是一个初入门Python的小白,完全不知道PEP是什么,又或许你是个学会了Python的熟手,见过几个PEP,却不知道这玩意背后是什么。那正好,本文将系统性地介绍一下PEP,与大家一起加深对PEP的了解。

  

目前,国内各类教程不可胜数,虽然或多或少会提及PEP,但笼统者多,局限于某个PEP者多,能够详细而全面地介绍PEP的文章并不多。

  

本文的目的是:尽量全面地介绍PEP是什么,告诉大家为什么要去阅读PEP,以及列举了一些我认为是必读的PEP,最后,则是搜罗了几篇PEP的中文翻译,希望能为Python学习资料的汉化,做点抛砖引玉的贡献。

  

  

PEP的全称是Python增强提案,其中增强是增强改进的意思,建议则可译为提案或建议书,所以合起来,比较常见的翻译是Python增强提案或Python改进建议书。

  

我个人倾向于前一个翻译,因为它更贴切.Python核心开发者主要通过邮件列表讨论问题,提议,计划等,PEP通常是汇总了多方信息,经过了部分核心开发者审查和认可,最终形成的正式文档,起到了对外公示的作用,所以我认为翻译成“提案”更恰当。

  

PEP的官网是:https://www.python.org/dev/peps/,这也就是PEP 0的地址。其它PEP的地址是将编号拼接在后面,例如:https://www.python.org/dev/peps/pep-0020/就是PEP 20的链接,以此类推。

  

第一个PEP诞生于2000年,现在正好是18岁成年。到目前为止,它拥有478个“兄弟姐妹”。

  

  
  

I -信息PEP

  

p -过程PEP

  

S -标准跟踪PEP

     

<强>其含义如下:

  

<>强信息类:这类PEP就是提供信息,有告知类信息,也有指导类信息等等,例如PEP 20 (Python的禅,即著名的Python之禅)、PEP 404 (Python 2.8 Un-release时间表,即宣告不会有Python2.8版本)。

  

<>强流程类:这类PEP主要是Python本身之外的周边信息,例如PEP 1 (PEP目的和准则,即关于PEP的指南)、PEP 347 (Python CVS迁移到Subversion,即关于迁移Python代码仓)。

  

<强>标准类:这类PEP主要描述了Python的新功能和新实践(实现),是数量最多的提案. .

  

每个PEP最初都是一个草案(草案),随后会经历一个过程,因此也就出现了不同的状态。以下是一个流程图:

  

简单了解python PEP的一些知识

  
  

——接受(标准)或活动方案已接受(仅限标准跟踪)或有效提案

  

D -递延提议延期提案

  

F -最终提案最终提案

  

p -临时建议暂定提案

  

R -拒绝了提议被否决的提案

  

S -取代的提议被取代的提案

  

W -撤回提案撤回提案

     

在PEP 0 (Python指数增强提案(PEP))里,官方列举了所有的PEP,你可以按序号,按类型以及按状态进行检索。而在PEP 1 (PEP目的和准则)里,官方详细说明了PEP的意图,如何提交PEP,如何修复和更新活力,以及PEP评审的机制等等。

  

  

无论你是刚入门Python的小白,有一定经验的从业人员,还是资深的黑客,都应该阅读Python增强提案。

  

  

(1)了解Python有哪些特性,它们与其它语言特性的差异,为什么要设计这些特性,是怎么设计的,怎样更好地运用它们;

  

(2)跟进社区动态,获知业内的最佳实践方案,调整学习方向,改进工作业务的内容;

  

(3)参与热点议题讨论,或者提交新的活力,为Python社区贡献力量。

  

说到底,学会用Python编程,只是掌握了皮毛.PEP提案是深入了解Python的途径,是真正掌握Python语言的一把钥匙,也是得心应手使用Python的一本指南。

  

  

如前所述,PEP提案已经累积产生了478个,我们并不需要对每个PEP都熟知,没有必要的。下面,我列举了一些PEP,推荐大家一读:

  

<强> PEP 0 - Python指数增强建议

  

<强> PEP 7 - C代码风格指南,C扩展

  

<强> PEP 8 - Python代码风格指南,编码规范(必读)

  

<强> PEP 20 ——Python的禅宗,Python之禅

  

<强> PEP 202 -列表理解,列表生成式

  

<强> PEP 274 - Dict理解,字典生成式

  

<强> PEP 234 -迭代器,迭代器

  

<强> PEP 257 ——有约定,文档注释规范

  

<强> PEP 279 ——列举()内置函数,列举枚举

  

<强> PEP 282 ——一个日志系统,日志模块

简单了解python PEP的一些知识