memoryview.__eq__(exporter)
memoryview
- объект памяти буфера обмена.exporter
- буфера обменаМетод memoryview.__eq__()
вернет True
, если memoryview
и exporter
равны.
memoryview
и exporter
равны тогда, когда их формы эквивалентны и если все соответствующие значения равны и соответствующие коды формата операндов интерпретируются с использованием синтаксиса struct
.
Для подмножества строк формата struct
, поддерживаемых в настоящее время memoryview.tolist()
, v и w равны, если v.tolist() == w.tolist()
.
>>> 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
Обратите внимание, что, как и в случае чисел с плавающей точкой, view
не подразумевает v == w
для объектов memoryview
.