b = bytearray(1) m = memoryview(b) 由于类型(b [0])为int,我希望类型(m [0])也为int。从Python 3.2开始,这是正确的。但是在Python 2.7中,类型为str。我需要能够将memoryview传递给期望int数组的函数。在Python 2.7中,我可以创建一个包装类并覆盖__getitem__。但是有没有技巧告诉memoryview对象返回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)。
map
来实现。我已经将其添加到答案中。 - warvariuc