是Python';s字节对象也称为字符串?

是Python';s字节对象也称为字符串?,python,string,Python,String,这是关于字符串的一节: 在Python 3中,所有字符串都是Unicode字符序列。没有utf-8编码的Python字符串,也没有CP-1252编码的Python字符串。“这个字符串是utf-8吗?”是无效的问题。utf-8是一种将字符编码为字节序列的方法。如果您想将字符串转换为特定字符编码中的字节序列,Python 3可以帮助您实现这一点。如果您想获取字节序列并将其转换为字符串,Python 3也可以帮助您实现这一点。字节不是字符;字节是字节。字符是一种抽象。字符串是这些抽象的序列 今天早些时

这是关于字符串的一节:

在Python 3中,所有字符串都是Unicode字符序列。没有utf-8编码的Python字符串,也没有CP-1252编码的Python字符串。“这个字符串是utf-8吗?”是无效的问题。utf-8是一种将字符编码为字节序列的方法。如果您想将字符串转换为特定字符编码中的字节序列,Python 3可以帮助您实现这一点。如果您想获取字节序列并将其转换为字符串,Python 3也可以帮助您实现这一点。字节不是字符;字节是字节。字符是一种抽象。字符串是这些抽象的序列

今天早些时候,我使用了
hashlib
模块并阅读了
md5
的帮助文本,其中说明:

返回一个新的MD5哈希对象;可以选择使用字符串初始化

它不接受
字符串
——它接受
字节
对象


也许我读得太多了,但是如果帮助文本中说明应该使用
字节
,这不是更有意义吗?或者人们对字符串和字节使用相同的名称?

在Python2和Python3中,
str既用于字符字符串,也用于字节。事实上,在Python2.6之前,甚至没有
字节
类型(在2.6和2.7中,
字节是str


hashlib文档中提到的不一致是这段历史的产物。

可能是Python2留下的帮助

这是从2到3的较大变化之一

Python2 Python3 str bytes unicode str 蟒蛇2蟒蛇3 str字节 unicode str Python2.6+通过将
bytes
作为
str


您应该向开发人员报告它(除非它已经被修复-我这里只有3.1.2)。我认为措辞可能需要改进

你在看什么版本的Python文档?2.7没有做必要的3k区分(显然是呵呵),但我的3k文档做了。(顺便说一句,乐的粉丝:))现在记不清确切的版本了,甚至可能没有堆栈。。。3点多。乐岩;)我明白了,这是有道理的。谢谢,汉克斯,我会负责报告的