python中經常會有判斷一個變量是否為None的情況,這里列舉三種方式:
if not x
if x is None
if not x is None
***********************************************************************************
遇到要判斷一個變量為None的情況,當時便考慮是用 is 還是 ==
那么 x is None 和 x == None有什么區別呢???
is比較的是id值是否相同,即是否為同一內存地址;== 僅比較值是否相等 。
None 表示的是一個對象,定義為 Nonetype 的對象。
x is None 表示的是x 的內存地址 與 None 一致,換言之:如果x是一個對象但是對象屬性定義為None的話,依然返回False。因為有對象,即有對應的地址空間。
如果 x是一個對象的屬性(變量),x 的值為None,則 is None返回True。(python中None是一個特殊的常量,“不同的”None的id是一樣的。)
x==None 表示 對象x等於None,相當於調用了__eq()__方法。當x為None時,自然返回True。
所以當判斷數據結構中的某一值是否為None時,is None會更好一些。
做一棵小草,誰也撼動不了………
如果您覺得本篇文章還不錯,歡迎點贊,轉發分享,感謝(*^_^*)
