Сообщить об ошибке.

Метод memoryview.__eq__() в Python, примеры кода

Сравнение memoryview и буфера обмена

Синтаксис:

memoryview.__eq__(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.