2017-01-30 80 views
-1

例如寻找无的类型,我们可以看到它有NoneType如何访问NoneType类型?

>>> type(None) 
NoneType 

但是一个NameError结果试图访问NoneType时:

>>> NoneType 
NameError: name 'NoneType' is not defined 

如何才能NoneType访问?

+0

有趣的[无是单](https://docs.python.org /3.6/c-api/none.html#the-none-object) – wwii

+1

你为什么需要它? Python 3上的 – furas

+0

它是'' – furas

回答

3

那么,在Python 2,你可以从types模块导入:

from types import NoneType 

,但它不是实际执行存在或任何东西。 types.py只是NoneType = type(None)。您不妨直接使用type(None)

在Python 3中,types.NoneType名称已不存在。只需使用type(None)即可。


如果type(None)显示NoneType你,而不是像<class 'NoneType'>,你可能是对一些非标准的解释器的设置,如IPython中。它通常会显示为类似于<class 'NoneType'>的东西,使其更清晰,您不能只输入NoneType并获取类型。

+0

不妨做type(obj)== type(None),而不是额外代码的麻烦? – hungryWolf

+0

user2357112,有关如何在Python3中导入它的任何想法?我在Python3中得到了一个导入错误:'ImportError:无法导入名字'NoneType'' @ user5676973让你错过了重点。 – Greg

+0

雅没关系,我错过了这一点,你能解释一下吗?我的答案似乎很好。 – hungryWolf

0

正如在评论@dawg建议,你可以做

if (type(some_object).__name__ == "NoneType"): 
    # Do some 
    pass 

你也可以做

NoneType = type(None)  
isinstance(some_object, NoneType)