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

Hive SQL中的datediff、current_dat…

Hive SQL中的datediff函数返回的是2个日期的天数。在使用过程中发现了一个比较有趣的坑: SELE
2 min read

使用Python进行相关性分析

在数据分析时,经常会针对两个变量进行相关性分析。在Python中主要用到的方法是pandas中的corr()方
42 sec read

动态规划之背包问题

2 min read

发表评论

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