什么是类字节对象

时间:2017-10-15 00:34:34

标签: python python-3.x

在Python 3.6中,base64.b64encode()需要一个类似字节的对象,而不是'str'

与普通字符串相比,类似字节的对象的示例是什么?

1 个答案:

答案 0 :(得分:3)

逻辑上存储一系列字节的任何内容都符合条件。其中包括实际的bytes类型,bytearraymmap.mmaparray.array('B')等.Python 3中的str是文本类型;字符不存储在指定的编码中,因此您不能直接将它们用作原始二进制数据;它们必须encode - 明确使用特定编码。

有关技术定义,请参阅Python 3 glossary

  

支持缓冲区协议并可以导出C连续缓冲区的对象。这包括所有bytesbytearrayarray.array对象,以及许多常见的memoryview对象。类字节对象可用于处理二进制数据的各种操作;这些包括压缩,保存到二进制文件,以及通过套接字发送。

     

某些操作需要二进制数据是可变的。文档通常将这些称为“读写字节类对象”。示例可变缓冲区对象包括bytearraymemoryview的{​​{1}}。其他操作要求将二进制数据存储在不可变对象中(“只读字节对象”);这些示例包括bytearray对象的bytesmemoryview