我正在编写序列化程序,memoryview
objects给了我麻烦。我需要知道在反序列化时重新创建相同内存视图所需的所有属性,但我无法弄清楚如何访问它们。
想象一下,我有一个像这样的记忆视图:
data = b'0123456789'
mem = memoryview(data)[2:5]
我可以通过obj
属性访问原始字节对象:
>>> m.obj is data
True
但我怎样才能掌握指数2
和5
,即记忆视图的界限?
我尝试了文档中列出的所有属性,但它们似乎都没有包含我需要的信息:
>>> mem.format
'B'
>>> mem.itemsize
1
>>> mem.shape
(3,)
>>> mem.ndim
1
>>> mem.strides
(1,)
>>> mem.suboffsets
()
如何提取内存视图的边界?