什么时候应该在 Python2.7 中使用 memoryview?我只是找不到通过常规 bytearray 使用它的任何好处。此外,memoryview 不支持字符串方法,这使其完全无法使用。我错了吗?
最佳答案
好吧,最后,在网络软件上工作,我找到了 memoryview
的一个用例:当我们有一个固定大小的套接字缓冲区并且我们想要对其执行快速切片(读/写来自任何给定位置的数据 w/o 在内存中创建额外的副本),像这样:
buf = bytearray(4096)
mview = memoryview(buf)
socket.recv_into(mview)
print mview[256:]
因此,在某些情况下,在字节数组上使用内存 View 会很方便。
对于这种方案,您唯一应该记住的是:在字节数组上创建内存 View 后,您不能更改字节数组的大小,直到删除此内存 View ,字节数组将被限制为其初始大小并抛出 BufferError: Existing exports of data: object cannot be re-sized
每次尝试向那里添加更多数据时都会出错。
关于Python Memoryview 与 Bytearray?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40069204/