Checking whether type is None

Schachner, Joseph Joseph.Schachner at
Wed Jul 25 12:14:18 EDT 2018

While I appreciate that use of "is" in   thing is None, I claim this relies on knowledge of how Python works internally, to know that every None actually is the same ID (the same object) - it is singular.  That probably works for 0 and 1 also but you probably wouldn't consider testing   thing is 1, at least I hope you wouldn't.  thing is None looks just as odd to me.  Why not thing == None ?  That works.

--- Joseph S.

-----Original Message-----
From: Tobiah <toby at> 
Sent: Tuesday, July 24, 2018 3:33 PM
To: python-list at
Subject: Checking whether type is None


	>>> type({}) is dict
	>>> type(3) is int
	>>> type(None) is None

Obvious I guess, since the type object is not None.
So what would I compare type(None) to?

	>>> type(None)
	<type 'NoneType'>
	>>> type(None) is NoneType
	Traceback (most recent call last):
	  File "<stdin>", line 1, in <module>
	NameError: name 'NoneType' is not defined

I know I ask whether:

	>>> thing is None

but I wanted a generic test.
I'm trying to get away from things like:

	>>> type(thing) is type(None)

because of something I read somewhere preferring my original test method.


More information about the Python-list mailing list