內置函數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')