【发布时间】:2016-03-11 14:36:56
【问题描述】:
我有一个 Python2 代码库,它广泛使用 str 来存储原始二进制数据。我想同时支持 Python2 和 Python3。
Python2 中的bytes(str 的别名)类型和Python3 中的bytes 完全不同。它们采用不同的参数来构造,索引到不同的类型,并具有不同的str 和repr。
统一两个 Python 版本的代码,使用单一类型存储原始数据的最佳方法是什么?
【问题讨论】:
-
为什么不坚持
str?版本之间是一样的吧? -
@zondo:不,他们不是。 Python 3 中的
str与 2 中的unicode大致相同。您不能在 Python 3 中将原始二进制数据存储在str中。 -
在两者中使用
b'..'前缀来定义文字,并使用像six这样的桥接库来处理其余情况。
标签: python python-2.7 python-3.x