[英]Make memoryview of bytearray return int elements in Python 2.7
b = bytearray(1)
m = memoryview(b)
由於類型(b [0])是int,我希望type(m [0])也是int。 從Python 3.2開始,這是事實。 但是在Python 2.7中,類型是str。 我需要能夠將memoryview傳遞給期望int數組的函數。
在Python 2.7中,我可以創建一個包裝類並覆蓋__getitem__
。 但有沒有一個技巧告訴memoryview對象返回int元素?
不,沒有辦法讓memoryview
的__getitem__
返回int
對象。
使用ord
應該做的伎倆:
Python 2.7.5+ (default, Sep 19 2013, 13:48:49)
>>> b = bytearray(1)
>>> m = memoryview(b)
>>> m[0]
'\x00'
>>> ord(m[0])
0
>>> map(ord, m)
[0]
>>>
這是因為在Python中,2字節數據存儲在字符串中。 Python 3現在可以區分字節和字符串 (unicode)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.