Python Memoryview与Bytearray?

时间:2016-10-16 10:21:06

标签: python arrays memoryview

我何时应该在Python2.7中使用 memoryview ?我在常规的 bytearray 中找不到任何使用它的好处。 memoryview 也不支持字符串方法,这使得它绝对无法使用。我错了吗?

1 个答案:

答案 0 :(得分:3)

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

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

因此,在某些情况下,在bytearray上有一个内存视图是很方便的。 你应该记住这样的方案唯一的事情:在bytearray上创建一个内存视图后,你不能改变bytearray的大小,直到你删除这个内存视图,bytearray将被限制为它的初始大小并抛出{{每次尝试在那里添加更多数据时都会出现错误。