bytes() 不可变字节序列
最后更新:2026-09-22
bytes() 不可变字节序列
bytes() 返回不可变字节序列;可由字节序列、字符串 + 编码或可迭代整数构造。
| 分类 | 内置函数 |
|---|---|
| 类型 | 内置函数 |
| Python 版本 | all |
📝 语法
bytes([source[, encoding]]]])
⚙️ 参数
| source 可选 | 可选。整数、字符串、可迭代整数或字节类对象。(默认值:None) |
|---|---|
| encoding 可选 | source 为字符串时使用的编码名(如 'utf-8')。(默认值:None) |
| errors 可选 | 编码错误处理方案(如 'strict' / 'ignore')。(默认值:None) |
返回值:bytes。不可变字节序列。
💥 异常
TypeError— 当 source 的类型不受支持时抛出。ValueError— 当元素超出 0-255 时抛出。
▶ 示例
编辑下方代码,点击运行,在输出面板查看结果:
运行结果:
b'hello'
b'\xe4\xb8\xad'
🏷️ 相关内置函数
💡 相关案例
更多实战案例即将上线,敬请期待。
❓ 常见问题
Qbytes(5) 返回什么?很多人以为是 b'5'?
A返回 b'\x00\x00\x00\x00\x00'。整数参数表示长度,生成对应数量的零字节,不是数字的字符串形式。
Qbytes() 和 bytearray() 有什么不同?
A核心区别是可变性:bytes 不可变,bytearray 可变;其余构造规则(整数、字符串+编码、可迭代整数)相同。
Q为什么 bytes('中文') 会报错?
A从字符串构造 bytes 必须同时传编码:bytes('中文', encoding='utf-8') 才行,否则抛 TypeError 提示缺少 encoding。
Q怎么从 bytes 转回字符串?
A用 decode() 方法,如 b'\xe4\xb8\xad'.decode('utf-8') 返回 '中';等价写法是 str(b, encoding='utf-8')。