欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Python中的bytearray()和bytes()函数

程序员文章站 2024-03-23 17:29:16
...

Python中的bytearray()和bytes()函数

概述

bytearray() 函数返回新字节数组,数组里的元素可变,且每个元素的值在0至255之间。bytes()函数是Python 3中增加的内置函数,语法、参数与bytearray() 一样,只是返回的新字节数组不可变。它是 bytearray() 的不可变版本。

语法

class bytearray([source[, encoding[, errors]]])
class bytes([source[, encoding[, errors]]])

参数

  • 如果 source 为整数,则返回一个长度为 source 的初始化数组;
  • 如果 source 为字符串,则按照指定的 encoding 将字符串转换为字节序列;
  • 如果 source 为可迭代类型,则元素必须为[0 ,255] 中的整数;
  • 如果 source 为与 buffer 接口一致的对象,则此对象也可以被用于初始化 bytearray;
  • 如果没有输入任何参数,默认就是初始化数组为0个元素。

示例

>>> bytearray()
bytearray(b'')
>>> bytearray(1)
bytearray(b'\x00')
>>> bytearray('test','utf-8')
bytearray(b'test')
>>> a=bytearray('hello','ascii')
>>> a
bytearray(b'hello')
>>> type(a)
<class 'bytearray'>
>>> a=bytes('hello','ascii')
>>> a
b'hello'
>>> type(a)
<class 'bytes'>
>>> bytearray([1,2,3,4])
bytearray(b'\x01\x02\x03\x04')
>>> bytearray([1,256,300,400])
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: byte must be in range(0, 256)