Python学习笔记:PEP文档

1 min read

PEP全称是Python Enhancement Proposal,翻译成中文是Python改进提案。它是Python记录Python变化的书面文档。PEP文档对Python的作用非常重要,根据讨论的主题,PEP主要有以下3种用途:

  • 通知:汇总Python核心开发者需要的信息,并通知Python发布日程。
  • 标准化:提供代码风格、文档或其他指导意见。
  • 设计:对提交的功能进行说明。

读Python源代码可以帮助你了解Python的当前的处理逻辑,读PEP文档可以帮助你了解Python设计的来龙去脉,帮助你解答如下问题:

  • A功能为什么要以这样的方式运行?
  • Python为什么没有B功能?

大多数情况下,关于该功能的某个PEP文档已经该出了上述问题的详细答案。很多提交关于Python语言功能的PEP文档并没有通过。这些文档可以作为历史资料来参考。

所有提交过的PEP都被汇总在一个文档中,就是PEP 0 — Index of Python Enhancement Proposals (PEPs)。PEP很有多类型,为了把时间花在刀刃上,也不需要所有的PEP文件都读,比如Rejected、Deferred、Superseded和Draft的。另外有些和我们学习使用Python关系不大,如新版本发布安排的,迁移项目托管平台的。每个PEP都有对应的类型(PEP Status Key):

  • 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 撤回提案

核心要看的其实是F类型提案,以下为一些比较重要的PEP:

  • PEP — PEP文档的目的、格式和工作流程标准
  • PEP 7 — Style Guide for C Code,如果想在Python代码中潜入C语言代码,值得一看
  • PEP 8 — Style Guide for Python Code,Python编码规范
  • PEP 20 — The Zen of Python
  • PEP 205 — Weak References
  • PEP 257 — Docstring Conventions
  • PEP 282 — A Logging System,日志记录的详细介绍
  • PEP 302 — New Import Hooks
  • PEP 309 — Partial Function Application偏函数
  • PEP 318 — Decorators for Functions and Methods 装饰器
  • PEP 342 — Coroutines via Enhanced Generators 协程和yield
  • PEP 380 — Syntax for Delegating to a Subgenerator yield from语法
  • PEP 443 — Single-dispatch generic functions Python 3的singledispatch装饰器
  • PEP 484 — Type Hints 类型约束
  • PEP 492 — Coroutines with async and await syntax 协程与async/await语法
  • PEP 498 — Literal String Interpolation Python 3.6新加的「格式化字符串字面量」
  • PEP 525 — Asynchronous Generators异步生成器
  • PEP 526 — Syntax for Variable Annotations
  • PEP 3099 — Things that will Not Change in Python 3000,关于争议内容点的讨论
  • PEP 3101 — Advanced String Formatting 字符串格式化
  • PEP 3105 — Make print a function 为什么Python3要把print改为函数
  • PEP 3115 — Metaclasses in Python 3000 Python3的元类
  • PEP 3119 — Introducing Abstract Base Classes 抽象基类,不止一次看到有人用的abc模块都是错误的
  • PEP 3135 — New Super Python 3中的super
  • PEP 3148 — futures – execute computations asynchronously,futures的详细介绍
  • PEP 3156 — Asynchronous IO Support Rebooted: the “asyncio” Module,asyncio模块
  • PEP 3333 — Python Web Server Gateway Interface v1.0.1 这是更新版的PEP 333,描述WSGI协议,告诉你如何在web服务器与web应用/web框架之间的可移植的标准接口。

其他参考:

打赏作者
微信支付标点符 wechat qrcode
支付宝标点符 alipay qrcode

C语言学习:size_t

在学习C语言的时候,遇到了一个新的数据类型size_t,截止目前也没有完全理清这个类似的具体场景及出现的原因。
44 sec read

C语言学习:main()函数的正确写法

C语言虽然是一门古老的语言,但是其标准一直在完善,所以很多以前支持的语法在到当前已经不能在使用了。 C语言的版
41 sec read

Scipy数学函数的Scala实现

最近在推进项目的时候,遇到需要将线下的Python代码转化成线上的集群代码,由于机器代码环境是Scala,所以
4 min read

发表评论

电子邮件地址不会被公开。 必填项已用*标注