Оператор python не является
Я заметил, что есть оператор сравнения is not
. Должен ли я буквально перевести его на
!=
вместо
== not
Ответы
Ответ 1
Чтобы узнать, что сказал Игнасио:
a == b
и a != b
проверьте, имеют ли два объекта одинаковое значение. Вы можете переопределить методы __eq__
и __ne__
для определения того, что это значит.
a is b
и a is not b
проверьте, являются ли два объекта одинаковыми. Это нравится делать id(a) == id(b)
Ответ 2
Это не реляционное сравнение, это идентичность. И он преобразуется в not (A is B)
.
Ответ 3
документация python 2.7.3, 5.9. Сравнения:
Операторы <, > , ==, > =, < =, и!= сравнивают значения двух объектов.
и оператор в той же главе:
Операторы являются и не проверяют идентификатор объекта: x является y истинным тогда и только тогда, когда x и y являются одним и тем же объектом. x не означает, что y дает обратное значение истинности.
Ответ 4
A != B
означает, что "A не равно B", а не "A равно не B".