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)-數據類型