python中的str和bytes有什么关系?
What's the relationship between str and bytes in python?
考虑以下打字稿:
>>> s = 'a'
>>> isinstance(s, bytes)
True
>>> isinstance(s, str)
True
>>> isinstance(s, unicode)
False
>>> isinstance(s.decode('utf-8'), unicode)
True
为什么 s
既是 str
又是 bytes
?其中一个是另一个的后代吗?
我是怎么运行进去的?我试图在文档中找到 decode
方法的描述。我找不到 str
,但可以找到 bytes
。
您查看的文档有误。
这种等效性仅在 Python 2.7 中成立。在那里,bytes
作为 str
的别名引入,以便于迁移到 Python 3.
在Python3中,str
就是之前叫的unicode
,bytes
就是之前叫str
的类型。
str.decode
for Python 2 的文档是 here。
考虑以下打字稿:
>>> s = 'a'
>>> isinstance(s, bytes)
True
>>> isinstance(s, str)
True
>>> isinstance(s, unicode)
False
>>> isinstance(s.decode('utf-8'), unicode)
True
为什么 s
既是 str
又是 bytes
?其中一个是另一个的后代吗?
我是怎么运行进去的?我试图在文档中找到 decode
方法的描述。我找不到 str
,但可以找到 bytes
。
您查看的文档有误。
这种等效性仅在 Python 2.7 中成立。在那里,bytes
作为 str
的别名引入,以便于迁移到 Python 3.
在Python3中,str
就是之前叫的unicode
,bytes
就是之前叫str
的类型。
str.decode
for Python 2 的文档是 here。