Compare to None
How do we check if something is None?
With the beauty of the Python language - the code that you would write is literally the same as the above question:
if something is None:
It reminds me of this joke:
- How do you turn pseudocode into Python?
- You add.pyat the end of the file.
There is another way in which we could make this comparison:
if something == None:
However, it doesn't make sense to use the second variant. None is a singleton object - there can't be two different None objects in your code. Each time you assign None to a variable, you reference the same None:
>>> a = None
>>> b = None
>>> c = None
>>> a is b is c
True
To compare the identity, you should use is, rather than ==, as I explained in the Checking for True or False article. It's clearer and faster:
$ python -m timeit -s "a = 1" "a is None"
50000000 loops, best of 5: 8.2 nsec per loop
$ python -m timeit -s "a = 1" "a == None"
20000000 loops, best of 5: 13 nsec per loop
As you can see, == is 60% slower than is (13 / 8.2 ≈ 1.59).


