關於Python中的None


關於Python中的None

注意到None這個類型是在做一道Python題目時,要求說如果傳進函數的字符串是“None”則返回False,糟糕的是我並不知道如何判斷是否是“None”。


None翻譯成漢語的意思是“沒有”,在Python中它表示空,但和空字符串、空列表不一樣,做這樣一個小實驗:

 >>> a = []
 >>> type(a)
 <class 'list'>
 >>> b = ''
 >>> type(b)
 <class 'str'>
 >>> c = None
 >>> type(c)
 <class 'NoneType'>

可以看到,空列表與空字符串都是有類型的,分別為 ‘list’ 與 ‘str’ ,None也是有類型的,為 ‘NoneType’,就是沒有類型。我們知道,在Python中一切皆對象,每個對象由:標識(identity)、類型(type)、值(value)組成。

1.標識用於唯一標識對象,通常對應於對象在計算機內存中的地址。使用內置函數id(obj)可返回對象obj的標識。

2.類型用於表示對象存儲的“數據”的類型。類型可以限制對象的取值范圍以及可執行的操作。可以使用type(obj)獲得對象的所屬類型。

3.值表示對象所存儲的數據的信息。使用print(obj)可以直接打印出值。


對象的本質就是:一個內存塊,擁有特定的值,支持特定類型的相關操作。


上述代碼中c的類型為NoneType,對象“c”沒有值。輸出上述代碼中的a、b、c的值,如下所示。

 >>> print(a)
 []
 >>> print(b)
 
 >>> print(c)
 None

回到原點,如何判斷一個對象是否為None呢?可以通過布爾值來判斷,空列表、空字符串、None的布爾值均為False,非空列表、字符串的布爾值則為True。

 >>> a = []
 >>> b = ''
 >>> c = None
 >>> bool(a)
 False
 >>> bool(b)
 False
 >>> bool(c)
 False
 >>> a.append(1)
 >>> a
 [1]
 >>> bool(a)
 True
 >>> b = b + '2'
 >>> b
 '2'
 >>>bool(b)
 True

在實際寫代碼時,可以通過if…else…來判斷。

 a = None
 
 if a:
     print("hiahiahia~")
 else:
     print("wuwuwu~")
     

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM