Python中bytes和bytearray的区别



Python中bytes和bytearray的区别,我知道他们一个可变序列,一个不可变

1. bytes
bytes 对象是由单个字节构成的 不可变字节序列,该序列的每个元素都为 [0, 255] 区间内的整数。
bytes 的构造方法:
class bytes([source[, encoding[, errors]]])
参数:
source 为整数,则返回长度为 source,元素以零值填充的字节序列。
source 为字符串,则使用 encoding 把字符串编码为字节序列。
source 为可迭代类型(list、bytes等),则迭代元素必为[0, 255] 区间内的整数,迭代元素的整数值依次作为字节序列的字节数值。
不传任何参数,返回长度为 0 的字节序列,即 b’’。


2. bytearray
bytearray 对象是由单个字节构成的 可变字节序列,该序列的每个元素都为 [0, 255] 区间内的整数。bytearray 是 bytes 的可变版本(内容和长度均可变)。
bytearray 的构造方法:
class bytearray([source[, encoding[, errors]]])
bytearray 构造方法的参数与 bytes 一致:
source 为整数,则返回长度为 source,元素以零值填充的字节数组。
source 为字符串,则使用 encoding 把字符串编码为字节数组。
source 为可迭代类型(list、bytes等),则迭代元素必为[0, 255] 区间内的整数,迭代元素的整数值依次作为字节序列的字节数值。
不传任何参数,返回一个空数组。

如有帮助,还请帮忙点下采纳!感谢!

1、bytes 是不可变类型.
bytes() # 空bytes,一旦创建不可改变
bytes(int) # 指定字节的大小,用0填充
bytes(iterable_of_ints) # [0.255]整数的可迭代对象
bytes(string, encoding[, errors]) # 等价于string.encoding(),字符串编码成字节
bytes(bytes_or_buffer) # 复制一份新的字节对象
2、bytearray 是可变数组,可以进行增删改操作,类似列表。
bytearray() # 空bytearray,可改变
bytearray(iterable_of_ints) # [0.255]整数的可迭代对象
bytearray(string, encoding[, errors]) # 等价于string.encoding(),字符串编码成字节
bytearray(bytes_or_buffer) # 复制一份新的字节数组对象
bytearray(int) # 指定字节的大小,用0填充

没什么好大的区别,一个不可变,一个可变,可变的就是可以改变某个字节的值