什么时候应该在Python2.7中使用memoryview?我只是找不到在常规字节数组上使用它的任何好处。另外,memoryview不支持字符串方法,这使其绝对不可用。我错了吗?

最佳答案

好的,最后,在网络软件上工作,我发现了一个内存 View 用例:当我们有一个固定大小的套接字缓冲区并且想要对其进行快速切片时(从任何给定位置读/写数据,而无需创建额外的副本)在内存中),如下所示:

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

因此,在某些情况下,在字节数组上具有memoryview很方便。
使用这种方案时,请记住的唯一事情是:在字节数组上创建memoryview后,不能更改字节数组的大小,除非删除此memoryview,否则bytearray将被限制为其初始大小并抛出BufferError: Existing exports of data: object cannot be re-sized错误尝试在此处添加更多数据。

关于Python Memoryview与Bytearray吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40069204/

10-12 16:53