网易首页 > 网易号 > 正文 申请入驻

Python 内置函数:bytes()

0
分享至

bytes() 是 Python 内置的字节序列构造函数,用于创建不可变的字节对象(immutable sequence of bytes)。

字节对象常用于二进制数据处理、文件读写、网络传输、加密处理等场景。

与之对应的可变版本是。

一、函数语法

bytes(source=b'', encoding=None, errors='strict')

参数

source:可选。可以是:

整数:表示新建的字节序列长度,每个字节值为 0(即 0x00)。

可迭代对象:其中每个元素必须是 0 ~ 255 之间的整数。

字符串:必须同时提供 encoding 参数。

bytes / bytearray 对象:通常会创建其不可变副本(但对于 bytes,可能直接返回原对象引用)。

默认值为空字节序列 b''。

encoding:可选。当 source 是字符串时,指定编码方式(如 'utf-8'、'ascii')。默认为 None。

errors:可选。

当 source 是字符串时,指定编码错误的处理方式。

默认为 'strict',表示遇到非法字符时报错。

常用还有 'ignore'(忽略非法字符)、'replace'(替换为占位符)。

返回值

返回一个新的 bytes 对象(不可变)。

二、基础用法示例

1、创建空字节对象

b1 = bytes()
print(b1)        # b''
print(type(b1))  #

2、由整数创建(全 0 填充)

当 source 是一个整数 n 时,bytes(n) 会创建一个长度为 n 的字节序列,且每个字节的值都是 0(即二进制 00000000,十进制 0,十六进制 0x00)。

b2 = bytes(5)    # 长度为 5,每个字节值都是 0
print(b2)        # b'\x00\x00\x00\x00\x00'  → 十六进制表示
print(list(b2))  # [0, 0, 0, 0, 0]         → 十进制表示

提示:

这里的 0 并不是字符 '0'(ASCII 值 48),而是空字节,表示该位置没有存储任何有效数据。

3、由可迭代对象创建

b3 = bytes([65, 66, 67])  # 65,66,67 对应 ASCII 的 A,B,C
print(b3)                 # b'ABC'

4、由字符串创建(需指定编码)

b4 = bytes("你好", encoding='utf-8')
print(b4)  # b'\xe4\xbd\xa0\xe5\xa5\xb

5、从已有字节对象创建副本

当 source 已经是 bytes 对象,且未指定 encoding、errors 时,bytes() 会直接返回同一对象引用(而不是创建副本),因为 bytes 是不可变类型,这样可以节省内存、提高性能。

b4 = bytes("你好", encoding='utf-8')
b5 = bytes(b4)
print(b5 is b4)  # True(引用复用)

如果需要强制生成新对象,可以复制数据:

b5 = bytes(b4[:])  # 切片会生成新的 bytes 对象
print(b5 is b4)    # False

三、bytes 对象特点

1、不可变性

bytes 类似于元组,内容不可修改:

b = b'ABC'
# b[0] = 68  # ❌ TypeError: 'bytes' object does not support item assignment

如需可变字节序列,应使用 bytearray()。

2、序列特性

支持索引、切片、迭代、成员测试等操作:

b = b'Python'
print(b[0])     # 80(字节值,而不是字符)
print(b[:3])    # b'Pyt'
print(80 in b)  # True

3、与 str 的关系

str 是文本(Unicode),bytes 是二进制数据。两者需通过 .encode() 与 .decode() 转换:

s = "Hello"
b = s.encode('utf-8')   # str -> bytes
print(b)                # b'Hello'

s2 = b.decode('utf-8')  # bytes -> str
print(s2)               # Hello

四、进阶技巧

1、指定编码

b = bytes("Café", encoding='latin-1')
print(b)  # b'Caf\xe9'

2、错误处理

# 使用 ignore 忽略无法编码的字符
b = bytes("你好", encoding='ascii', errors='ignore')
print(b)  # b''

五、补充说明与注意事项

1、字符串必须指定编码

否则会报错:

bytes("abc")  # ❌ TypeError: string argument without an encoding

2、索引返回整数(字节值),不是单字节对象

b = b'A'
print(b[0])  # 65

3、不可变性导致需要重新创建对象

对 bytes 的“修改”会生成新对象,频繁修改应考虑 。

4、引用复用优化

当传入的对象已经是 bytes 类型,bytes() 会直接返回原对象引用,而不是复制数据。

点赞有美意,赞赏是鼓励

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
离队第二人?尼克斯难留沙梅特,下份合同多大合适?

离队第二人?尼克斯难留沙梅特,下份合同多大合适?

篮球实录
2026-06-27 14:24:34
没有对比没有伤害!和刘翔离婚后的葛天,如今现状令人唏嘘!

没有对比没有伤害!和刘翔离婚后的葛天,如今现状令人唏嘘!

星星没有你亮
2026-06-27 13:34:26
吴越54岁未婚独养父母,父亲瘫痪母亲不懂智能机:有钱也扛不住

吴越54岁未婚独养父母,父亲瘫痪母亲不懂智能机:有钱也扛不住

子芫伴你成长
2026-06-26 22:26:10
知情人还原UA858全程!华女登机口喊遭迫害,后续代价比想象中重

知情人还原UA858全程!华女登机口喊遭迫害,后续代价比想象中重

趣味萌宠的日常
2026-06-27 04:03:30
“砖家,虽迟到终归会来”

“砖家,虽迟到终归会来”

吴女士
2026-06-26 15:45:49
脏到极致却从不爆发瘟疫!恒河逆天自净之谜,败给了印度风俗

脏到极致却从不爆发瘟疫!恒河逆天自净之谜,败给了印度风俗

娱乐圈的笔娱君
2026-06-13 17:01:32
曝杭州“宋城第一美女”小豆子去世!知情人曝原因,遗体已火化

曝杭州“宋城第一美女”小豆子去世!知情人曝原因,遗体已火化

裕丰娱间说
2026-06-27 07:43:00
令人绝望!连非洲兄弟都来踩一脚,韩国已跌至第7,就怕2场默契球

令人绝望!连非洲兄弟都来踩一脚,韩国已跌至第7,就怕2场默契球

萌兰聊个球
2026-06-27 08:07:08
专访扛钢管的单亲妈妈:用肩膀扛出四川历史类前5名,却说“女儿不恨我就好”丨封面头条

专访扛钢管的单亲妈妈:用肩膀扛出四川历史类前5名,却说“女儿不恨我就好”丨封面头条

封面新闻
2026-06-26 21:09:14
女卫生员怀孕咬定是我的,我被开除,5年后我开迈巴赫停在她摊前

女卫生员怀孕咬定是我的,我被开除,5年后我开迈巴赫停在她摊前

千秋文化
2026-06-24 19:59:19
新型出轨太会了:不发消息不打电话,只靠这两种方式联系,真藏得太深了

新型出轨太会了:不发消息不打电话,只靠这两种方式联系,真藏得太深了

心理观察局
2026-06-26 07:37:08
3年1400万!阿尔瓦拉多续约,纽约双赢操作!

3年1400万!阿尔瓦拉多续约,纽约双赢操作!

篮球实录
2026-06-27 14:19:23
韩红麻烦大了!不到24小时再迎噩耗,其戒指、腕表价格不菲疑炫富

韩红麻烦大了!不到24小时再迎噩耗,其戒指、腕表价格不菲疑炫富

乡野小珥
2026-06-27 04:52:34
摘下桑顿,追逐斯玛特!火箭重组1号位,为范弗里特离队做准备?

摘下桑顿,追逐斯玛特!火箭重组1号位,为范弗里特离队做准备?

熊哥爱篮球
2026-06-27 13:40:22
正常男人吃一颗伟哥是什么体验?网友们的分享让人脸红心跳加快!

正常男人吃一颗伟哥是什么体验?网友们的分享让人脸红心跳加快!

黯泉
2026-06-25 12:10:30
胡歌曝白玉兰结束后大家聚餐,立马打电话叫于和伟买单,理由搞笑

胡歌曝白玉兰结束后大家聚餐,立马打电话叫于和伟买单,理由搞笑

娱最资讯
2026-06-26 23:59:49
蒋勤勤突然红了眼眶,说吴越至今未婚,是自己二十年过不去的心结

蒋勤勤突然红了眼眶,说吴越至今未婚,是自己二十年过不去的心结

观察鉴娱
2026-06-26 10:43:23
国足是怎样一步步沦为全民笑柄、被视作人间笑话的

国足是怎样一步步沦为全民笑柄、被视作人间笑话的

笑熬浆糊111
2026-06-25 13:37:06
随着塞内加尔5-0大胜,韩国出线概率从末轮战后94%逐步滑落至50%

随着塞内加尔5-0大胜,韩国出线概率从末轮战后94%逐步滑落至50%

凌空倒钩
2026-06-27 06:04:48
央视点赞杨紫“获奖感言”,释放2大信号,于和伟的话有人信了

央视点赞杨紫“获奖感言”,释放2大信号,于和伟的话有人信了

烈史
2026-06-27 12:00:08
2026-06-27 15:15:00
MediaTea
MediaTea
专业的数字媒体、新媒体技术
1909文章数 80关注度
往期回顾 全部

科技要闻

GPT-5.6发布,你暂时用不了!Mythos也放行

头条要闻

美国专家:亚洲秩序正在转变 中国统一可能"不战而胜"

头条要闻

美国专家:亚洲秩序正在转变 中国统一可能"不战而胜"

体育要闻

世界杯最火门将,站到了阿根廷和梅西面前

娱乐要闻

四提白玉兰终封后,杨紫:仍觉不真实

财经要闻

OpenAI推迟IPO重创软银!

汽车要闻

11.99万起 捷途自由者7 PLUS/山海T1四驱版上市

态度原创

房产
艺术
健康
手机
家居

房产要闻

全国高考大放水,300分就能上本科!论上岸率,海南没输过!

艺术要闻

16幅 国外著名艺术家的画作

“无糖汤圆”是否隐藏着健康陷阱?

手机要闻

消息称某厂新机搭载6.59英寸中屏、骁龙8系处理器

家居要闻

绿意盎然 自然之境

无障碍浏览 进入关怀版