python查漏補缺——is 與==的區別

is 與==的區別

在這裏插入圖片描述
is 與==的區別:

  • is 判斷兩個變量是否引用同一個對象,即是比較對象的地址

在這裏插入圖片描述

  • == 判斷兩個變量引用的對象的值是否相等,默認調用對象的_eq_()方法

在這裏插入圖片描述

>>> a=1000
>>> b=1000
>>> a==b
True
>>> a is b
False
>>> id(a)
2251637956496
>>> id(b)
2251638998416

總結

1、 is 比較兩個對象的 id 值是否相等,是否指向同一個內存址
2、== 比較的是兩個對象的內容是否相等,值是否相等:
3、小整數對象[-5, 256]在全局解釋器範圍內被放入緩存供重複用

>>> a=1
>>> id(a)
140713390940560
>>> b=1
>>> id(b)
140713390940560

4、is運算符比==效率高,在變量和None 進行比較時應該使用is。
更詳細的總結見:python基礎2.0版(2)-數據類型

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章