Python的io.BytesIO.getvalue()返回str而不是bytes正常吗?
Python中的io.BytesIO.getvalue()
方法返回字符串而不是字节,这正常吗?
Python 2.7.1 (r271:86832, Jun 13 2011, 14:28:51)
>>> import io
>>> a = io.BytesIO()
>>> a
<_io.BytesIO object at 0x10f9453b0>
>>> a.getvalue()
''
>>> print type(a.getvalue())
<type 'str'>
>>>
我应该提交一个bug报告吗?
2 个回答
4
在Python 2.X中,bytes
并不是一种独立的数据结构,所以这完全正常。在Python 2中,str
就是字节串(bytestrings),而在Python 3中,str
则是Unicode字符串。
22
不,这不是一个错误。这是正常的表现。你可以看看这个回答:Python 2.7中的bytes类型和PEP-358
简单来说,Python 2.7中的bytes
其实就是str
的一个别名,目的是为了让大家更容易过渡到3.x版本。