Python Memoryview vs Bytearray?



何时在Python2.7中使用memoryview ?我只是找不到使用它优于常规的bytearray的任何好处。而且memoryview不支持字符串方法,这使得它绝对不可用。我错了吗?

好的,最后,在网络软件上工作,我发现了memoryview s的一个用例:当我们有一个固定大小的套接字缓冲区,我们想对它执行快速切片(从任何给定位置读取/写入数据,而不是在内存中创建额外的副本),像这样:

buf = bytearray(4096)
mview = memoryview(buf)
socket.recv_into(mview)
print mview[256:]

所以,在某些情况下,在字节数组上有一个内存视图是很方便的。对于这种方案,您应该记住的唯一一件事是:在您在bytearray上创建memoryview之后,您不能更改bytearray的大小,直到您删除该memoryview, bytearray将被限制为其初始大小,并在每次尝试添加更多数据时抛出BufferError: Existing exports of data: object cannot be re-sized错误。

相关内容

  • 没有找到相关文章

最新更新