當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


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__。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。