object.__ne__
Позволяет реализовать проверку на неравенство для экземпляров пользовательских типов.
object.__ne__(self, other)
self -- Ссылка на экземпляр.
other -- Объект с которым следует произвести сравнение (справа от оператора сравнения).
other -- Объект с которым следует произвести сравнение (справа от оператора сравнения).
Метод для реализации «богатого» сравнения. ne от англ. «not equal» — не равно.
Метод может возбудить исключение NotImplemented, если сравнение для указанной пары аргументов не реализовано.
В соответствии с договорённостью в случае успешного сравнения возвращает
+py3.4 По умолчанию метод делегирует управление методу object.__eq__(), инвертируя результат, если только не было поднято NotImplemented.
-py3.4 Между различными операторами сравнения нет подразумеваемых взаимосвязей. Так истинность
Не существует «перевёрнутых» методов, которые могли бы использоваться автоматически, если левый аргумент не поддерживает вызванную операцию, а правый поддерживает. Вместо этого обычно считают зеркальными
Для автоматического генерирования операций упорядочивания по единой базовой операции можно использовать
Для получения дополнительной важной информации об использовании «богатого сравнения» при создании объектов, поддерживающих хеширование, которые могут использоваться в качестве ключей в словарях смотрите object.__hash__().
Метод может возбудить исключение NotImplemented, если сравнение для указанной пары аргументов не реализовано.
В соответствии с договорённостью в случае успешного сравнения возвращает
True
, либо False
. Однако, может возвращать и любое другое значение, таким образом, если результат сравнения будет использован в контексте Булева типа (например, в условии if), Питон произведёт вызов bool() для интерпретации данного значения. class Moon:
def __ne__(self, other):
print('moon ne')
return self is not other
class Earth:
def __ne__(self, other):
print('earth ne')
return self is not other
my_moon = Moon()
my_earth = Earth()
is_ne = (my_moon != my_earth) # moon ne
is_ne # True
is_ne = (my_earth != my_moon) # earth ne
is_ne # True
is_ne = (my_earth != my_earth) # earth ne
is_ne # False
+py3.4 По умолчанию метод делегирует управление методу object.__eq__(), инвертируя результат, если только не было поднято NotImplemented.
-py3.4 Между различными операторами сравнения нет подразумеваемых взаимосвязей. Так истинность
(x< y or x==y)
не подразумевает x<=y
. Поэтому, при определении __ne__()
также необходимо определить и object.__eq__() для того чтобы операторы вели себя ожидаемым образом. Не существует «перевёрнутых» методов, которые могли бы использоваться автоматически, если левый аргумент не поддерживает вызванную операцию, а правый поддерживает. Вместо этого обычно считают зеркальными
__ne__()
и __eq__()
. +py3.4 Если операнды имеют различные типы и тип правого операнда является прямым или косвенным наследником типа левого операнда о метод-отражение правого операнда имеет приоритет, в иных случаях приоритет остаётся у метода левого операнда. При этом виртуальное наследование не учитывается.Для автоматического генерирования операций упорядочивания по единой базовой операции можно использовать
functools.total_ordering()
.Для получения дополнительной важной информации об использовании «богатого сравнения» при создании объектов, поддерживающих хеширование, которые могут использоваться в качестве ключей в словарях смотрите object.__hash__().
Синонимы поиска: object.__ne__, object, __ne__, неравенство, <>, notequal
В разделе «object (объект)»:
file (файл)
object.__add__
object.__bool__
object.__call__
object.__ceil__
object.__class__
object.__cmp__
object.__contains__
object.__copy__
object.__deepcopy__
object.__del__
object.__delattr__
object.__delete__
object.__delitem__
object.__delslice__
object.__dir__
object.__enter__
object.__eq__
object.__exit__
object.__floor__
object.__format__
object.__ge__
object.__get__
object.__getattr__
object.__getattribute__
object.__getitem__
object.__getslice__
object.__getstate__
object.__gt__
object.__hash__
object.__init__
object.__init_subclass__
object.__iter__
object.__le__
object.__len__
object.__lt__
object.__missing__
object.__new__
object.__next__
object.next
object.__nonzero__
object.__qualname__
object.__rcmp__
object.__repr__
object.__reversed__
object.__set__
object.__setattr__
object.__setitem__
object.__set_name__
object.__setslice__
object.__setstate__
object.__slots__
object.__str__
object.__sub__
object.__subclasses__
object.__unicode__
property (свойство)
Protocols (протоколы)
slice (срез)
Встроенные исключения
На заметку
Читайте нас в Twitter. Ссылка в самом низу страницы.