Python Memoryview 与 Bytearray?

Python Memoryview vs Bytearray?

什么时候应该在 Python2.7 中使用 memoryview?我只是找不到比常规 bytearray 使用它有任何好处。另外 memoryview 不支持字符串方法,这使得它完全无法使用。我错了吗?

好吧,最后,在网络软件上工作,我发现了内存视图的一个用例:当我们有一个固定大小的套接字缓冲区并且我们想要对其执行快速切片时(read/write 来自任何给定的数据位置 w/o 在内存中创建额外的副本),像这样:

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

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