Python Enhancement Proposals

PEP 5 – Guidelines for Language Evolution

PEP
5
Title
语言演变指南
Author
paul at prescod.net (Paul Prescod)
Status
Active
Type
Process
Created
26-Oct-2000
Post-History


Contents

摘要

在编程语言的自然演进中,有时有必要进行修改,以改变旧程序的行为。这个 PEP 提出了一个政策,以尊重 Python 用户的安装基础的方式来实现这些改变。

实现细节

实现此 PEP 需要增加一个正式的警告和废止设施,这将在另一个提案中描述。

范围

这些指南适用于引入向后不兼容行为的 Python 的未来版本。向后不兼容的行为是指 Python 的解释与标准 Python 文档中描述的早期行为的重大偏差。移除一个特性也构成了行为的改变”

本 PEP 并不取代或排除其他兼容性策略,例如动态加载向后兼容的解析器。另一方面,如果执行 “旧代码” 需要一个特殊的开关或 pragma,那么从用户的角度来看,这确实是一种行为的改变,这种改变应该根据这些指南来实现。

一般来说,在执行这些准则时必须以常识为准。例如,改变 “sys.copyright” 并不构成向后兼容的行为改变!

引入向后不兼容的功能的步骤

  1. 在 PEP 中提出向后兼容的行为。PEP 必须包括一个关于向后兼容的部分,详细描述完成这些步骤的剩余部分的计划。
  2. 一旦 PEP 被接受为一个富有成效的方向,就实施另一种方法来完成以前由被删除或改变的功能所提供的任务。例如,如果加法运算符被计划删除,新版本的 Python 可以实现一个 “add()” 内置函数
  3. 在 Python 文档中正式废除这个过时的结构。
  4. 在解析器中增加一个可选的警告模式,当使用废弃的结构时,会通知用户。换句话说,所有在未来会有不同行为的程序都必须在这种模式下触发警告。编译时警告比运行时警告更可取。警告信息应该引导人们从被废弃的结构转向替代的结构。
  5. 在 Python 的过渡版本发布和向后不兼容的版本发布之间必须有至少一年的过渡期。用户将有至少一年的时间来测试他们的程序,并将它们从使用被废弃的结构迁移到替代的结构。

Source: https://github.com/python/peps/blob/master/pep-0005.txt

Last modified: 2017-11-11 19:28:55 GMT