是Python';s字节对象也称为字符串?
这是关于字符串的一节: 在Python 3中,所有字符串都是Unicode字符序列。没有utf-8编码的Python字符串,也没有CP-1252编码的Python字符串。“这个字符串是utf-8吗?”是无效的问题。utf-8是一种将字符编码为字节序列的方法。如果您想将字符串转换为特定字符编码中的字节序列,Python 3可以帮助您实现这一点。如果您想获取字节序列并将其转换为字符串,Python 3也可以帮助您实现这一点。字节不是字符;字节是字节。字符是一种抽象。字符串是这些抽象的序列 今天早些时候,我使用了是Python';s字节对象也称为字符串?,python,string,Python,String,这是关于字符串的一节: 在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点多。乐岩;)我明白了,这是有道理的。谢谢,汉克斯,我会负责报告的