0

我正在编写 python 代码,我想支持 python 2 和 3。我正在处理的最突出的数据类型之一是不可变的字节序列,所以我想找到一种优雅的方法来处理 python 2 之间的差异bytes'(别名为'str')和python 3'bytes'(具体来说,它们切片和迭代的不同方式对我来说非常烦人)。

起初我尝试使用'bytearray',因为它似乎在 python 2 和 3 中具有相同的行为,但它是可变的这一事实是有问题的,因为我需要我的对象是可散列的。

如果无法访问 python 2 中的 python3 'bytes' 行为,我正在考虑尝试的当前解决方案是:转换所有序列(无论它们是 python 2 'bytes'/'str' 还是 python 3 'bytes ') 到整数元组。

假设我不能在 python 2 中使用 python 3 'bytes' 类型,还有什么我应该考虑的解决方案吗?

4

1 回答 1

3

使用six模块及其b()文字binary_type。这将承担您检查 Python 版本的负担。

于 2013-09-03T21:34:18.473 回答