首頁 > 後端開發 > Python教學 > 「foo is None」和「foo == None」有什麼區別

「foo is None」和「foo == None」有什麼區別

anonymity
發布: 2020-09-18 10:15:22
原創
2580 人瀏覽過

「foo is None」和「foo == None」的區別是:判斷符的不同,is判斷符用於比較兩個對像是否是同一個對象,==判斷符用於比較兩個物件的值是否相等。

「foo is None」和「foo == None」有什麼區別

foo is None 和foo == None的區別

if foo is None: 
    pass
if foo == None: 
    pass
登入後複製

這是兩種不同的用法,它們之間的差別是什麼呢?

答案:

Python中變數本身不儲存其值,變數賦值事實上是將變數引用指向記憶體中快取的對象本身,例如:

a=5
b=5
登入後複製

看似兩個變數實際指向同一個對象,此時a==b,a is b都為True,==運算子比較兩個物件的值, is 則判斷兩個變數是否指向同一個引用,想判斷是否同一物件,用函數id()即可顯示出實際物件的識別(一個整數),此時id(a),id(b),id( 5)的標識符都是一致的。

同理,如果foo為None時,事實上是將foo指向None物件的實際標識符,此時用id()顯示任何為None的變數的標識,會發現與id(None)的結果相同。

題目中的結果一樣,但語意不同,就看你是想表達“foo與None為同一對象”,還是“foo值與None值相等”。

以上是「foo is None」和「foo == None」有什麼區別的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板