memoryview() 内存视图
最后更新:2026-09-22
memoryview() 内存视图
memoryview() 返回对象(如 bytes/bytearray)的内存视图,可零拷贝访问底层缓冲区。
| 分类 | 内置函数 |
|---|---|
| 类型 | 内置函数 |
| Python 版本 | all |
📝 语法
memoryview(obj)
⚙️ 参数
| obj 必选 | 支持缓冲区协议的对象(如 bytes、bytearray)。 |
|---|
返回值:返回内存视图对象,可零拷贝地读取底层缓冲区数据。
💥 异常
TypeError— 对象不支持缓冲区协议时抛出。
▶ 示例
编辑下方代码,点击运行,在输出面板查看结果:
运行结果:
104 b'ell'
🏷️ 相关内置函数
💡 相关案例
更多实战案例即将上线,敬请期待。
❓ 常见问题
Qmemoryview 有什么用?
A在不复制底层数据的前提下读取/操作字节数据,适合大文件、网络包等性能敏感场景,避免切片时复制。
Qmv = memoryview(b'hello') 后 mv[0] 是什么?
A是 104(整数),与 bytes 一样按字节索引取值;mv[1:4] 返回视图,要转 bytes 用 .tobytes()。
Qmemoryview 和普通切片有什么区别?
Ab'hello'[1:4] 会创建新的 bytes(数据拷贝);memoryview(b'hello')[1:4] 是视图,指向同一块底层缓冲,不复制。
Q对不支持缓冲区协议的对象调用会怎样?
A抛 TypeError,只有 bytes、bytearray、array.array 等支持缓冲区协议的对象可用。