您的位置:

45. Python memoryview()

Python memoryview()

更新:

内置函数memoryview()用于返回给定对象的内存视图对象。内存视图是在 Python 中公开缓冲协议的更好方法。通过创建内存视图对象,它允许您访问对象的内部缓冲区。缓冲区协议有助于访问对象的内部数据,内部数据可以是内存数组或缓冲区。

 **memoryview(obj)** # Where obj can be a byte or bytearray 

内存视图()参数:

只接受一个参数。这里 obj 将支持缓冲协议(字节,字节数组)。

参数 描述 必需/可选
目标文件 要公开其内部数据的对象 需要

memoryview()返回值

我们还可以在内存视图中更新对象。

| 投入 | 返回值 | | 目标文件 | 内存视图对象 |

Python 中memoryview()方法的示例

示例memoryview()在 Python 中是如何工作的?

 #random bytearray
random_byte_array = bytearray('ABC', 'utf-8')

mv = memoryview(random_byte_array)

# access memory view's zeroth index
print(mv[0])

# create byte from memory view
print(bytes(mv[0:2]))

# create list from memory view
print(list(mv[0:3])) 

输出:

65
b'AB'
[65, 66, 67]

示例 2:使用内存视图修改内部数据

 # random bytearray
random_byte_array = bytearray('ABC', 'utf-8')
print('Before updation:', random_byte_array)

mv = memoryview(random_byte_array)

# update 1st index of mv to Z
mv[1] = 90
print('After updation:', random_byte_array) 

输出:

Before updation: bytearray(b'ABC')
After updation: bytearray(b'AZC') 

示例 3:在内存视图中更新对象。

 barr = bytearray('Python','utf-8')
mv = memoryview(barr)
print(type(mv))
mv[0] = 65
print(barr) 

输出:

bytearray(b'Aython')