x is y
совпадает с id(x) == id(y)
, сравнивая идентичность объектов.
Как отметил @ tomasz-kurgan в комментарии ниже is
, оператор ведет себя необычно с определенными объектами.
Например,
>>> class A(object):
... def foo(self):
... pass
...
>>> a = A()
>>> a.foo is a.foo
False
>>> id(a.foo) == id(a.foo)
True
Ref; https://docs.python.org/2/reference/expressions.html#is-not https://docs.python.org/2/reference/expressions.html#id24