内置函数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')