当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python memoryview.__eq__用法及代码示例


用法:

__eq__(exporter)

一个内存视图和一个 PEP 3118如果它们的形状相同并且当操作数各自的格式代码使用struct句法。

对于 tolist() 当前支持的 struct 格式字符串的子集,如果 v.tolist() == w.tolist() ,则 vw 相等:

>>> import array
>>> a = array.array('I', [1, 2, 3, 4, 5])
>>> b = array.array('d', [1.0, 2.0, 3.0, 4.0, 5.0])
>>> c = array.array('b', [5, 3, 1])
>>> x = memoryview(a)
>>> y = memoryview(b)
>>> x == a == y == b
True
>>> x.tolist() == a.tolist() == y.tolist() == b.tolist()
True
>>> z = y[::-2]
>>> z == c
True
>>> z.tolist() == c.tolist()
True

如果 struct 模块不支持任一格式字符串,则对象将始终比较为不相等(即使格式字符串和缓冲区内容相同):

>>> from ctypes import BigEndianStructure, c_long
>>> class BEPoint(BigEndianStructure):
...     _fields_ = [("x", c_long), ("y", c_long)]
...
>>> point = BEPoint(100, 200)
>>> a = memoryview(point)
>>> b = memoryview(point)
>>> a == point
False
>>> a == b
False

请注意,与浮点数一样,v is w 确实 not 对 memoryview 对象暗示 v == w

在 3.3 版中更改:以前的版本比较原始内存,不考虑项目格式和逻辑数组结构。

相关用法


注:本文由纯净天空筛选整理自python.org大神的英文原创作品 memoryview.__eq__。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。