How to test NoneType in python?
How to test NoneType in python?
So how can I question a variable that is a NoneType?
Use is
operator, like this
if variable is None:
Why this works?
Since None
is the sole singleton object of NoneType
in Python, we can use is
operator to check if a variable has None
in it or not.
Quoting from is
docs,
The operators
is
andis not
test for object identity:x is y
is true if and only ifx
andy
are the same object.x is not y
yields the inverse truth value.
Since there can be only one instance of None
, is
would be the preferred way to check None
.
Hear it from the horses mouth
Quoting Pythons Coding Style Guidelines – PEP-008 (jointly defined by Guido himself),
Comparisons to singletons like
None
should always be done withis
oris not
, never the equality operators.
if variable is None:
...
if variable is not None:
...
How to test NoneType in python?
It can also be done with isinstance
as per Alex Halls answer :
>>> NoneType = type(None)
>>> x = None
>>> type(x) == NoneType
True
>>> isinstance(x, NoneType)
True
isinstance
is also intuitive but there is the complication that it requires the line
NoneType = type(None)
which isnt needed for types like int
and float
.