python - python中str和bytes有什么关系?

标签 python string python-2.x

考虑以下 typescript :

>>> 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 的迁移。

在 Python 3 中,str就是之前所说的unicode , bytes是以前称为 str 的类型.

str.decode 的文档对于 Python 2 是 here .

关于python - python中str和bytes有什么关系?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40658535/

相关文章:

php - 如何将包含数字和空格的字符串转换为 int

python - 尝试在 Python 2 中复制列表并修改它的一个版本

python - 以交错方式组合两个 Python 列表

jquery - Selenium wait.until 检查 ajax 请求完成是抛出错误

java - Java 中的顺序字符串搜索

java - 解析字符串中的方法定义作为方法名称

python 2除法

python - 如何存储 X-Y 数据以便使用 Numpy 中的函数?

python - 如何将 Pandas 数据框行转换为多行

python - StringIO 导入 ee 时出现问题,尽管可以单独导入