Python 内建函数列表 > Python 的内置函数 bytes

class bytes(x=b''):
    '''
    创建 bytes

    :param x: 要转换的变量
    :return: x 转换为 bytes 后的值
    '''

Python 的内置函数 bytes 用于创建不可变的字节序列对象。它是 Python 中处理二进制数据的基本类型之一,与 str 类型类似但专门用于表示字节数据而非文本。

bytes 函数有三种主要创建方式:

  1. 通过指定长度创建:bytes(5) 会创建一个包含 5 个零字节的序列(b’\x00\x00\x00\x00\x00’)
  2. 通过可迭代对象创建:bytes([65, 66, 67]) 会创建包含 ASCII 码 65-67 的字节序列(b’ABC’)
  3. 通过字符串和编码创建:bytes('你好', 'utf-8') 会将字符串按指定编码转换为字节序列

字节序列的主要特点包括:

  • 不可变性:一旦创建就不能修改
  • 取值范围:每个字节必须是 0 <= x < 256 的整数
  • 显示方式:可打印字符显示为 ASCII 字符,其他显示为 \x 加十六进制

常见应用场景:

  1. 文件 I/O 操作:open('file.bin', 'rb').read() 返回的就是 bytes 对象
  2. 网络通信:socket 发送接收的数据通常是 bytes 格式
  3. 数据序列化:pickle、json 等模块处理的数据底层都是 bytes
  4. 加密算法:哈希、加密等操作通常处理字节数据

bytearray 的区别:

  1. bytes 是不可变的,bytearray 是可变的
  2. bytes 可以直接作为字典键使用,bytearray 不行
  3. 性能上 bytes 通常比 bytearray 稍快

示例用法:

点击运行

# 创建 bytes 对象
b1 = bytes(3)  # b'\x00\x00\x00'
b2 = bytes([72, 101, 108, 108, 111])  # b'Hello'
b3 = bytes('Python', 'ascii')  # b'Python'

# 常用方法
data = b'example'
print(data.hex())  # 转换为十六进制字符串:'6578616d706c65'
print(data.decode('utf-8'))  # 解码为字符串:'example'