如果你为Python写了一个PEP,并且这个PEP成功地被PythonSteeringCommittee接受了,那么以后你吹牛的时候,你可以说我主导了Python语言的某个特性的设计。请问你是不是主导了Python语言特性的设计。今天写一篇文章,告诉大家如何为Python设计一个PEP,以及PEP从一个idea到用Python语言去实现的整个过程:假设你已经是Python高手。在使用Python的过程中,你会觉得Python语言在某些方面并不完美。你有一个很好的想法来改进Python的缺点。您计划将您的想法添加到Python语言中。里面,所以你要写一个PEP给Python的发展出谋划策,那么你首先需要做什么呢?首先,你要确定你的idea是一个新的idea,一个比较大的idea,并且需要建立一个PEP的idea,也许你在Python中发现了一些小问题,但是这些小问题如果你提交一个小补丁就可以解决,那就不用提PEP了。当你确定你的想法很棒时,你不会立即提及PEP,你需要做的第一件事是在社区中引发讨论,看看其他人的想法,然后自己实施这个想法,看看是否可行是可行的,发到python-list@python.orgmailinglist或者python-ideas@python.orgmailinglist进一步确认,看看大家是否认同你的想法,如果能得到大多数人的认同你,那么你在游戏中,发帖前最好准备一份高质量的文案,这样会更容易被接受。总之就是先讨论,得到大家的认可,避免后期不必要的撕逼。但是,您也必须做好准备。最好有一个简单的实现,然后继续有几个高质量的PEP草稿来写PEP。几个你不得不知道的Python社区角色。作者是编写PEP的人。PEP从一个想法到PEP草案,再到带有官方PEP编号的PEP文件,再到后来的PEP批准。,PEP审查已更改。在PEP被接受的过程中维护PEP文档的人是PEP的作者。大多数PEP作者本身就是PEP支持者。经过多次审核,每一个参与审核的人都可以称为PEP审核者PEP编辑:PEP编辑是对PEP进行初审的人,审核通过的PEP进入PEP仓库的master分支下一步的github。一轮审查Python核心开发人员:Python核心开发人员是开发Cpython解释器的一群人。被选中指导Python语言开发的一群人对PEP是否被接受拥有最终决定权。PEP工作流程如下:PEPchampion首先有一个高质量的idea(经过讨论、分析和理性验证)然后你去githubForkPEP仓库,在仓库里创建一个pep-9999.rst文件来粘贴你的PEPdraft进去确定你的PEP类型,设置PEP的状态为draft,然后根据模板写一波PEPheader把你的pep-9999.rstpush到PEP仓库,PEP编辑会审核你的提交。如果审核通过,原本是草稿的PEP将获得一个普通的PEP编号。如果不通过,PEP编辑会回调,让PEP作者修改。如果PEP审核通过并获得PEP编号,PEP编辑器会将新提交的PEP合并到PEP仓库的master分支中。如果您的PEP类型是StandardsTrack,那么您提交的PEP也会发送给Python-dev列表的成员。进行另一次审查以确保您的新PEP没有缺陷。一些听起来不错的PEP,在实施时实际上非常痛苦。好的情况下,当你提交一个PEP的时候,你手里已经有了这个PEP的原型实现,所以如果你的PEP类型是StandardsTrack类型,你不仅需要准备一份设计文档,还需要准备一个参考实现,为了避免一些不切实际的想法,当然凡事都有例外,一些Python核心开发者不会走这个流程,因为他们的权限比较大,他们有直接推送内容到PEP仓库的权限,所以有时候他们会直接给自己的PEP分配一个PEP号推送到PEP仓库的当然,这并不意味着PEP被接受,它只是绕过了PEP编辑的批准,PEP的接受和PEP的批准是完全不同的事情,只有通过PythonSteeringCommittee的同意,PEPplan实现了才叫PEPaccepted。如果我写的PEP不能被批准和拒绝怎么办?PEP被拒是正常的。不要气馁。只要你能坚信你的PEP真的对Python有用,它就真的很好。ideaar,修改一下就可以了,但是被拒肯定是有原因的,主要原因有以下几点:这个特性已经存在,技术上不合理。Python不需要实现这样的特性,也就是说,一个伪需求Backwardcompatibility是不可能的,不符合Python的设计哲学(Python的设计哲学可以在Python交互式解释器中输入importthis得到)。其实你可以在PEP审批阶段带着你自己的PEP想法咨询PythonSteeringCommittee,因为PEP最终会被PythonSteeringCommittee确定不被接受,所以如果你真的想让你的PEP成为接受了,提前沟通是很有必要的。PEP草案必须与至少一个Python核心开发人员一起编写,或者有Python核心开发人员指导您编写它,或者有Python指导委员会批准的非Python核心开发人员。Python指导委员会信任的人参与了您的PEP设计。如果你不满足这个条件,PEP编辑有权直接拒绝你的PEP草案。PEP审核和决策机制PEP最终是否被接受并决定执行是有一个过程的,需要层层审核。总之是一个很麻烦的过程。下面是Python官方画的一个简单的流程图:但实际情况比较复杂,有时也不会按照这张流程图,但是这张流程图为人们提供了一个更清晰的PEP工作流程概览PEP格式和模板是不可能的如今,无需模板即可编写任何文档。PEP也是一个文档,所以创建模板:首先,PEP是一个UTF-8编码的第一个文件。首先,您需要引导第一个文件。format,如果你已经知道rst的语法格式,那么你可以阅读官方的PEP12--SamplereStructuredTextPEPTemplate,没错,PEP12就是介绍第一种格式PEP模板的PEP(有点绕),为什么要用第一种格式呢?官方的解释是很容易转成html,方便在线发布和阅读。每一个PEP都必须有一个标准的PEPheader,如下图,可以写数字也可以不写,必须不写数字。记住写PEP头的时候,头中字段的顺序一定要按照下图的内容来写,顺序不能乱写,这里差不多,但其实有PEP写作中的内容很多,比如:如何判断一个PEP是否是成功的PEPPEP提交和发现内容中的bug,如何解决PEP所有权和所有权转移的问题PEP我就不写了,小编的详细的职责和工作流程等等,写不下去了。。如果你想写PEP,可以先走上面的流程,遇到问题再去查资料嘛。如果觉得本文内容还不错的话,微信的朋友请点击阅读,其他平台的朋友可以扫描下方二维码(近距离)关注我等你看。
