Python 内建函数列表 > Python 的内置函数 bytes
class bytes(x=b''):
'''
创建 bytes
:param x: 要转换的变量
:return: x 转换为 bytes 后的值
'''
Python 的内置函数 bytes 用于创建不可变的字节序列对象。它是 Python 中处理二进制数据的基本类型之一,与 str 类型类似但专门用于表示字节数据而非文本。
bytes 函数有三种主要创建方式:
- 通过指定长度创建:
bytes(5)会创建一个包含 5 个零字节的序列(b’\x00\x00\x00\x00\x00’) - 通过可迭代对象创建:
bytes([65, 66, 67])会创建包含 ASCII 码 65-67 的字节序列(b’ABC’) - 通过字符串和编码创建:
bytes('你好', 'utf-8')会将字符串按指定编码转换为字节序列
字节序列的主要特点包括:
- 不可变性:一旦创建就不能修改
- 取值范围:每个字节必须是 0 <= x < 256 的整数
- 显示方式:可打印字符显示为 ASCII 字符,其他显示为 \x 加十六进制
常见应用场景:
- 文件 I/O 操作:
open('file.bin', 'rb').read()返回的就是 bytes 对象 - 网络通信:socket 发送接收的数据通常是 bytes 格式
- 数据序列化:pickle、json 等模块处理的数据底层都是 bytes
- 加密算法:哈希、加密等操作通常处理字节数据
与 bytearray 的区别:
bytes是不可变的,bytearray是可变的bytes可以直接作为字典键使用,bytearray不行- 性能上
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'