Python中 == 與 is 的區別和應用場景

在python中經常判斷兩個字符串是否相等,這時候是用==還是使用is呢?對初學者來說是很容易犯的錯誤。


is表示的是對象標識(zhi)符(object identity), 而==表示的是相等(equal)的意思,顯然兩者不是同一個東西。

is和==的根本區別是:


1. is的作用是用來檢查對象的標示符是否一致的,也就是比較兩個對象在內存中是否擁有同一塊內存空間。

    x is y 相當於:id(x) == id(y) 。所以他並不適合用來判斷兩個字符串是否相等。x is y僅當x和y是同一對象

            的時候才返回True.

        2. ==纔是用來檢驗兩個對象的值是否相等的。它實際調用內部__eq__()方法。所以a == b相當於a.__eq__(b),

            所以==操作法是可以重載的,而is是不能被重載的。


所以:判斷兩個對象是否相等就應該使用==而不是is。






發佈了25 篇原創文章 · 獲贊 11 · 訪問量 11萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章