PEP 5 – 语言演进指南
- 作者:
- Paul Prescod <paul at prescod.net>
- 状态:
- 已取代
- 类型:
- 流程
- 创建日期:
- 2000年10月26日
- 发布历史:
- 取代者:
- 387
目录
摘要
在编程语言的自然演进中,有时需要进行会修改旧程序行为的更改。本PEP提出了一项策略,旨在以尊重Python现有用户群的方式实施这些更改。
实施细节
本PEP的实施需要添加一个正式的警告和弃用机制,这将在另一项提案中描述。
范围
这些指南适用于引入向后不兼容行为的未来Python版本。向后不兼容行为是指Python解释与标准Python文档中描述的早期行为发生重大偏差。删除某个特性也构成行为变更。
本PEP不取代或排除其他兼容性策略,例如动态加载向后兼容的解析器。另一方面,如果执行“旧代码”需要特殊的开关或pragma,那么从用户的角度来看,这确实是一种行为变更,并且该变更应根据这些指南实施。
总的来说,在实施这些指南时必须遵循常识。例如,更改“sys.copyright”不构成向后不兼容的行为变更!
引入不兼容旧版本特性时的步骤
- 在PEP中提出向后不兼容的行为。该PEP必须包含一个关于向后兼容性的部分,详细描述完成其余步骤的计划。
- 一旦PEP被接受为富有成效的方向,就实现一种替代方法来完成以前由被删除或更改的特性提供的任务。例如,如果加法运算符计划删除,新版Python可以实现一个“add()”内置函数。
- 在Python文档中正式弃用过时的构造。
- 向解析器添加一个可选的警告模式,当使用弃用的构造时会通知用户。换句话说,将来行为会发生变化的所有程序都必须在此模式下触发警告。编译时警告优于运行时警告。警告消息应引导人们从弃用的构造转向替代构造。
- 在Python过渡版本的发布与向后不兼容版本的发布之间,必须至少有一年的过渡期。用户将至少有一年时间来测试他们的程序,并将其从使用弃用构造迁移到替代构造。
来源:https://github.com/python/peps/blob/main/peps/pep-0005.rst