python中判斷為None


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會更好一些。

 

做一棵小草,誰也撼動不了………

 
        

如果您覺得本篇文章還不錯,歡迎點贊,轉發分享,感謝(*^_^*)


免責聲明!

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



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