Python 二进制序列类型之二:bytearray [学习 Python 必备基础知识][看此一篇就够了][创建 bytearray 对象][bytearray() 构造器]
您的“关注”和“点赞”,是信任,是认可,是支持,是动力......
如意见相佐,可留言。
本人必将竭尽全力试图做到准确和全面,终其一生进行修改补充更新。
目录
1 bytearray
类型概述
bytearray
,字节数组,是一个可变字节序列,包含范围为 0 <= x < 256
的整数。
bytearray
对象是 bytes 对象(bytes 是不可变字节序列)的可变序列对应物。
由于 bytearray
对象是由整数构成的序列(类似于列表),因此对于一个 bytearray 对象 b
,b[0]
将为一个整数
,而 b[0:1]
将为一个长度为 1
的 bytearray 对象
。 (这与文本字符串不同,文本字符串索引和切片所产生的将都是一个长度为 1
的字符串
)。
2 创建 bytearray
对象
2.1 创建 bytearray
对象概述
bytearray
对象没有专属的字面值语法,它们总是通过调用构造器来创建:
- 创建一个空实例:
bytearray()
。 - 创建一个指定长度的以零值填充的实例:
bytearray(10)
- 通过由整数组成的可迭代对象:
bytearray(range(20))
- 通过缓冲区协议复制现有的二进制数据:
bytearray(b'Hi!')
2.2 bytearray([source[, encoding[, errors]]])
构造器(内置函数)
构造器使用格式如下所示:
class bytearray([source[, encoding[, errors]]])
对以上格式说明,
返回值
:返回一个新的 bytes 数组。source
:是一个可选形参。可选形参source
可以用不同的方式来初始化数组,如下所示:
① 如果是一个文本序列(字符串),必须提供encoding
参数(errors 参数仍是可选的);bytearray()
会使用str.encode()
方法来将文本序列(字符串str
)转变成字节序列bytes
。
② 如果是一个整数,会初始化大小为该数字的数组(创建一个为该整数个字节的字节数组),并使用null
字节(十六进制的 0x0 填充)填充。
③ 如果是一个符合buffer
接口的对象,该对象的只读 buffer 会用来初始化字节数组。
④ 如果是一个iterable
可迭代对象,它的元素的范围必须是0 <= x < 256
的整数,它会被用作数组的初始内容。
⑤ 如果没有实参,则创建大小为0
的字节数组。