簡體   English   中英

在Python 2.7中使bytearray的內存視圖返回int元素

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM