How do we check if something is
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
>>> a = None
>>> b = None
>>> c = None
>>> a is b is c
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).