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

python中 is 和 == 的區別

Python中的物件包含三要素:id、type、value

其中:id用來唯一標識一個物件,type標識物件的型別,value是物件的值

is判斷的是a物件是否就是b物件,是通過id來判斷的

==判斷的是a物件的值是否和b物件的值相等,是通過value來判斷的

https://www.jb51.net/article/94189.htm

" 最終取決於物件的__ eq__() 方法,本質上兩個變數進行 "” 比較操作呼叫的是物件的 eq() 方法。例如

>>> class Foo(object):   
 	def __eq__(self, other):     
 		 return True 
 >>> f = Foo()
 >>>> f == 1
 True
 >>> f == None
 True
 >>> f is None
 False

因為自定義類 Foo 的 eq 方法恆返回 True,因此它與任何物件進行 “==” 都是返回 True。而它與 None 是兩個不同的物件,因此 ‘is’ 操作返回的是 False。