1. 程式人生 > >python is 和==的區別

python is 和==的區別

Python中的物件包含三要素:id、type、value
其中id用來唯一標識一個物件,type標識物件的型別,value是物件的值
is判斷的是a物件是否就是b物件,是通過id來判斷的
==判斷的是a物件的值是否和b物件的值相等,是通過value來判斷的
如下程式碼或許可以幫助你理解。
>>> a = 1
>>> b = 1.0
>>> a is b
False
>>> a == b
True
>>> id(a)
12777000
>>> id(b)
14986000
————注意下面的情況——————————————————
 >>> a = 1
>>> b = 1
>>> a == b
True
 >>> a is bTrue
a==b 沒有任何問題。但是a is b 為什麼是True呢??
python學習手冊P164頁作出瞭解釋:
a,b不是同一個物件,因為是兩個不同的常量表達式。 不過,因為小的整數和字串被快取並複用了,所以is告訴我們是同一個物件。