memoryview() <Python 內(nèi)置函數(shù)>

轉(zhuǎn)載須注明出處:簡(jiǎn)書@Orca_J35 | GitHub@orca-j35,所有筆記均托管于 python_notes 倉(cāng)庫(kù)

相關(guān)筆記:

  • 『二進(jìn)制序列類型(bytes, bytearray, memoryview)』-> Memory Views

??class memoryview(obj)

該函數(shù)會(huì)創(chuàng)建一個(gè)引用自 obj 的內(nèi)存視圖(memoryview)對(duì)象。內(nèi)存視圖對(duì)象允許 Python 代碼訪問(wèn)支持緩沖區(qū)協(xié)議(buffer protocol)的對(duì)象的內(nèi)部數(shù)據(jù),且無(wú)需拷貝。

obj 必須支持緩沖區(qū)協(xié)議(buffer protocol)。支持緩沖區(qū)協(xié)議的內(nèi)置對(duì)象有 bytesbytearray。bytesbytearraymemoryview 提供支持,內(nèi)存視圖使用緩沖區(qū)協(xié)議(buffer protocol)訪問(wèn)來(lái)訪問(wèn)其它二進(jìn)制對(duì)象的內(nèi)存,且無(wú)需拷貝。

示例 - 使用內(nèi)存視圖對(duì)象修改一個(gè)短整型有符號(hào)整數(shù)數(shù)組的數(shù)據(jù)。

from array import array

numbers = array('h', [-2, -1, 0, 1, 2]) # 'h'表示signed short
memv = memoryview(numbers) 
len(memv) #> 5
# 轉(zhuǎn)換成列表形式
memv.tolist() #> [-2, -1, 0, 1, 2]
# 轉(zhuǎn)換成無(wú)符號(hào)字符類型
memv_oct = memv.cast('B')       
memv_oct.tolist() #> [254, 255, 255, 255, 0, 0, 1, 0, 2, 0]
# 修改第3個(gè)元素的高位字段
memv_oct[5] = 4                 
numbers #> array('h', [-2, -1, 1024, 1, 2])
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容