处理二进制数据块时返回`bytes`或`bytearray`?

时间:2017-11-19 12:10:20

标签: python arrays python-3.x idiomatic

当返回/产生大量二进制数据时,返回bytesbytearray是否更惯用?

我的函数在bytearray中累积数据,目前返回bytes(myarray)。是否有任何理由支持或反对回归 直接bytearray?特别是,如果函数需要bytes并获得bytearray,是否存在任何可能的陷阱(只要它不检查实际类型)?

根据documentation of bytearray

  

它具有可变序列的大多数常用方法,在可变序列类型中描述,以及 bytes类型具有的大多数方法,请参阅Bytes and Byte Array Methods。< / p>

(我的重点。)这表明bytearray可用于预期bytes的任何地方。

1 个答案:

答案 0 :(得分:0)

对于每种可能的情况,它们都不可互换。某些代码可能使用类型检查,它们具有不同的类型。与其姓名一样,类型为bytearraybytes

问题编辑后:

唯一的区别是bytes is an immutable version of bytearray

因此,bytearray可用于预期bytes的任何地方。