PEP 332 – 字节向量和字符串/Unicode 统一
- 作者:
- Skip Montanaro <skip at pobox.com>
- 状态:
- 已拒绝
- 类型:
- 标准轨迹
- 创建:
- 2004年8月11日
- Python 版本:
- 2.5
- 历史记录:
摘要
本 PEP 概述了引入原始 bytes
序列对象以及统一当前 str
和 unicode
对象。
拒绝通知
本 PEP 以此形式被拒绝。作者表示缺乏时间来继续维护它,并且 python-dev 上的讨论转向了一个略微不同的提案,该提案最终将被写成一个新的 PEP。请参阅从 https://mail.python.org/pipermail/python-dev/2006-February/060930.html 开始的线程。
基本原理
Python 当前的字符串对象是重载的。它们既可以用来保存 ASCII 和非 ASCII 字符数据,也可以用来保存作为原始字节序列的序列,这些序列没有合理的解释作为可显示的字符序列。这种重叠在过去并不是什么大问题,但是随着 Python 越来越需要源代码被正确编码,使用字符串来表示原始字节序列将变得更加成问题。此外,随着 Python 的 Unicode 支持得到改进,更容易将字符串视为 ASCII 编码的 Unicode 对象。
提议的实现
括号中的数字表示将在哪个 Python 版本中引入该功能。
- 添加一个
bytes
内置函数,它只是str
的同义词。(2.5) - 添加一个
b"..."
字符串字面量,它等价于原始字符串字面量,除了与包含文件的源编码冲突的值不会生成警告。(2.5) - 警告使用名为“bytes”的变量。(2.5 或 2.6)
- 引入一个
bytes
内置函数,它指的是与str
类型不同的序列。(2.6) - 使
str
成为unicode
的同义词。(3.0)
字节对象 API
待定。
问题
- 这是否可以在 Python 3.0 之前完成?
bytes
对象应该是可变的还是不可变的?(Guido 似乎喜欢它们是可变的。)
版权
本文档已置于公有领域。
来源: https://github.com/python/peps/blob/main/peps/pep-0332.rst
上次修改: 2023-09-09 17:39:29 GMT