Python 'is not' operator

Question:

I notice there is a comparison operator is not. Should I literally translate it into

!=

instead of

== not

?

Asked By: nos

||

Answers:

A != B

means that “A is not equal to B”, not “A is equal to not B”.

Answered By: zsalzbank

It’s not a relational comparison; it’s identity. And it translates to not (A is B).

To expand on what Ignacio said:

a == b and a != b test whether two objects have the same value. You can override an object’s __eq__ and __ne__ methods to determine what that means.

a is b and a is not b test whether two objects are the same thing. It’s like doing id(a) == id(b).

Answered By: Thomas K

Python 2.7.3 documentation, 5.9. Comparisons:

The operators <, >, ==, >=, <=, and != compare the values of two objects.

and about operator is in the same chapter:

The operators is and is not test for object identity: x is y is true if and only if x and y are the same object. x is not y yields the inverse truth value.

Answered By: 2r2w
Categories: questions Tags:
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.