Python != operation vs "is not"

operators, python

Solution

`==` is an equality test. It checks whether the right hand side and the left hand side are equal objects (according to their `__eq__` or `__cmp__` methods.)

`is` is an identity test. It checks whether the right hand side and the left hand side are the very same object. No methodcalls are done, objects can't influence the `is` operation.

You use `is` (and `is not`) for singletons, like `None`, where you don't care about objects that might want to pretend to be `None` or where you want to protect against objects breaking when being compared against `None`.

Problem

In a comment on this question, I saw a statement that recommended using ``` result is not None ``` vs ``` result != None ``` What is the difference? And why might one be recommended over the other?

Original source

Related problems