Is Python "None" a Singleton?

Find out if "None" is a singleton object in Python

In Python, None is a singleton object (i.e. only one instance of it ever exists).

You can validate that using None always references to the same object (no matter how many times it's called) by using Python's identity function "id()", for example, like so:

print(id(None)) # 139898125892800

foo = None
print(id(foo)) # 139898125892800

def bar():
    pass

print(id(bar())) # 139898125892800

The examples above show that the id of None is the same (no matter how many times it's called), which means that they point to the same object.

Since None always references to the same object, you can use the is (or is not) operators to compare values against it:

if foo is None:
    # do something

if foo is not None:
    # do something

Although, it is possible to use the equality operator (== or !==) to compare against None, it is not recommended. You should use is (or is not) operator instead.


Hope you found this post useful. It was published . Please show your love and support by sharing this post.