What are the semantics of the 'is' operator in Python?

How does the is operator determine if two objects are the same? How does it work? I can't find it documented.


From the documentation:

Every object has an identity, a type and a value. An object’s identity never changes once it has been created; you may think of it as the object’s address in memory. The ‘is‘ operator compares the identity of two objects; the id() function returns an integer representing its identity (currently implemented as its address).

This would seem to indicate that it compares the memory addresses of the arguments, though the fact that it says "you may think of it as the object's address in memory" might indicate that the particular implementation is not guranteed; only the semantics are.


Comparison Operators

Is works by comparing the object referenced to see if the operands point to the same object.

>>> a = [1, 2]
>>> b = a
>>> a is b
True
>>> c = [1, 2]
>>> a is c
False

c is not the same list as a therefore the is relation is false.