PEP 阅读清单
Python Enhancement Proposals
只是一份简单的清单,只看右侧目录即可获得所有信息。
PEP 0 -- IndePEPx of Python Enhancement Proposals (PEPs)
Python 增强建议(PEP)的索引
PEP 索引
【浏览】
PEP 1 -- PEP Purpose and Guidelines
PEP 目的和指南
内容简述
【浏览】
PEP 8 -- Style Guide for Python Code
Python 代码样式指南
代码样式
【理解】:美观简洁,可阅读性
PEP 20 -- The Zen of Python
Python 之禅
import this
import this
【浏览】
PEP 230 -- Warning Framework
警告框架
warning.warn(message [,category [,stacklevel]])
warnings.filterwarnings(message, category, module, lineno, action)
warning.warn(message [,category [,stacklevel]])
warnings.filterwarnings(message, category, module, lineno, action)
【理解】:多用 DeprecationWarning
提醒用户过期的内容
DeprecationWarning
提醒用户过期的内容PEP 249 -- Python Database API Specification v2.0
Python 数据库 API 规范 v2.0
数据库 API 2.0
【浏览】
PEP 255 -- Simple Generators
简单生成器
生成器的来源
【理解】:世纪大突破啊!
PEP 318 -- Decorators for Functions and Methods
函数和方法的装饰器
函数前 @
@
【理解】:装饰器就是个返回函数的函数
PEP 328 – Imports: Multi-Line and Absolute/Relative
导入:多行和绝对/相对形式
from .a import b
from .a import b
【理解】:from ... import
默认为相对导入,import
默认为绝对导入
from ... import
默认为相对导入,import
默认为绝对导入PEP 342 -- Coroutines via Enhanced Generators
基于拓展生成器的协程
send()
throw()
close()
send()
throw()
close()
【理解】:yield
由语句变为表达式,生成器扩展了新方法
yield
由语句变为表达式,生成器扩展了新方法PEP 343 -- The "with" Statement
“with”声明
with
@contextmanager
with
@contextmanager
【理解】:@contextmmanager
装饰的函数中包围 yield 的 try 仍线性执行
@contextmmanager
装饰的函数中包围 yield 的 try 仍线性执行PEP 380 -- Syntax for Delegating to a Subgenerator
委派子生成器的语法
yield from
yield from
【理解】:yield from
生成的链中异常的处理(可以 throw 到底层)
yield from
生成的链中异常的处理(可以 throw 到底层)PEP 479 -- Change StopIteration handling inside generators
更改生成器内部的 StopIteration
处理
StopIteration
处理生成器中主动抛出的 StopIteration
被包装为 RuntimeError
StopIteration
被包装为 RuntimeError
【理解】:防止 yield 链的隐式意外中断
PEP 483 -- The Theory of Type Hints
类型提示的理论
typing
typing
【浏览】:就是你把鬼子(静态类型标注)引进村的吗?
PEP 484 -- Type Hints
类型提示
typing
typing
【浏览】:终究还是躲不开类型
PEP 487 -- Simpler customisation of class creation
简化类创建的自定义
__set_name__
__init_subclass__
__set_name__
__init_subclass__
【理解】:__new__
中先后增添 __set_name__
__init_subclass__
__new__
中先后增添 __set_name__
__init_subclass__
PEP 492 -- Coroutines with async and await syntax
具有异步和等待语法的协程
async
await
async
await
【浏览】
PEP 508 -- Dependency specification for Python Software Packages
Python 软件包依赖关系规范
内容简述
【待阅】
PEP 514 -- Python registration in the Windows registry
Windows 注册表中的 Python 注册
内容简述
【待阅】
PEP 520 -- Preserving Class Attribute Definition Order
保留类属性的定义顺序
__definition_order__
__definition_order__
【理解】:3.6 中 compact dict 已经替代了 definition_order,字典默认保留插入顺序
PEP 525 -- Asynchronous Generators
异步生成器
内容简述
【浏览】
PEP 526 -- Syntax for Variable Annotations
变量标注的语法
:
:
【理解】:PEP 484 基础上的变量标注
PEP 544 -- Protocols: Structural subtyping (static duck typing)
协议:结构性分型(静态鸭式 typing)
内容简述
【待阅】
PEP 557 -- Data Classes
数据类
@dataclass
@dataclass
【理解】:collections.namdetuple()
从此有了大个的傻弟弟
collections.namdetuple()
从此有了大个的傻弟弟PEP 560 -- Core support for typing module and generic types
键入模块和泛型类型的核心支持
typing
typing
【待阅】
PEP 563 Postponed Evaluation of Annotations
延迟的标注求值
a: a = ...
a: a = ...
【理解】:注解中的前向引用不必再用 ""
""
PEP 572 -- Assignment Expressions
赋值表达式
:=
:=
【理解】:之前仅有语句可赋值,现在表达式也可赋值
PEP 614 -- Relaxing Grammar Restrictions On Decorators
放宽对装饰器的语法限制
@Anything
@Anything
【理解】:解放装饰器,@
可跟任意表达式
@
可跟任意表达式PEP 617 -- New PEG parser for CPython
用于 CPython 的新 PEG 解析器
新的语法解析器
【浏览】
PEP 634 -- Structural Pattern Matching: Specification
结构化模式匹配:规范
match ... case:
match ... case:
【理解】:as
|
literal capture _
value ()
sequence mapping class(__match_args
)
as
|
literal capture _
value ()
sequence mapping class(__match_args
)PEP 635 -- Structural Pattern Matching: Motivation and Rationale
结构化模式匹配:动机和理由
match ... case:
的设计考虑
match ... case:
的设计考虑【理解】:构造与获取(匹配)的对称
PEP 636 -- Structural Pattern Matching: Tutorial
结构化模式匹配:教程
match ... case:
的教程
match ... case:
的教程【理解】:Pythonic 的 switch,使用很便利
PEP 680 – tomllib: Support for Parsing TOML in the Standard Library
支持在标准库中解析 TOML
tomllib.load
tomllib.loads
tomllib.load
tomllib.loads
【理解】:标准库工具需要读 TOML,但是写操作具有复杂的自由度,所以只读不写
PEP 3107 -- Function Annotations
函数标注
__annotations__
__annotations__
【理解】:identifier [: expression] [= expression]
identifier [: expression] [= expression]
PEP 3115 -- Metaclasses in Python 3000
Python 3000 中的元类
__prepare__()
__prepare__()
【理解】:搭配 3.6 引入的 compact dict 可控制类属性创建顺序
PEP 3119 -- Introducing Abstract Base Classes
介绍抽象基类
abc
abc
【理解】:抽象基类相关,便于检查具体接口实现情况
PEP 3129 -- Class Decorators
类装饰器
类前 @
@
【理解】:PEP 318 @
只能用在函数和方法前,这里扩展到类
@
只能用在函数和方法前,这里扩展到类PEP 3134 – Exception Chaining and Embedded Tracebacks
异常链接和嵌入式回溯
PEP 3135 -- New Super
新 super
super()
__class__
super()
__class__
【理解】:方法内可以直接用 __class__
,且 super()
可省略参数
__class__
,且 super()
可省略参数PEP 3153 -- Asynchronous IO support
异步 IO 支持
asyncio
asyncio
【待阅】
PEP 3333 -- Python Web Server Gateway Interface v1.0.1
Python Web 服务器网关接口 v1.0.1
WSGI
【浏览】
模板
标题翻译
内容简述
【待阅】【浏览】【理解】
最后更新于