2017-01-30 62 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)