Java和Python中判斷對象是否相等的異同
Java中
對於基本類型來說equals和==都只是判斷的是值是否相同;
整數型:byte,short,int,long;
浮點型:float,double
布爾型:boolean
字符型:char
對於對象類型分兩種情況:
a. String類型(由於String類重寫了equals方法;此時equals比較的是值是否相等,==表示的是地址是否相等):
b.其他的類型(前提是也沒有重寫equals方法,此時:==和equals方法都是比較的兩者的地址是否相同)
Pyhon中
Python判斷對象是否相等(== 和 is)
Python中的對象包含三個基本要素,分別是:
id:用來唯一標識一個對象,可以理解為內存地址;
type:標識對象的類型;
value:對象的值;
== :比較兩個對象的內容是否相等,即兩個對象的 value 是否相等,無論 id 是否相等,默認會調用對象的 __eq__()方法
is: 比較的是兩個對象是不是完全相同,即他們的 id要相等。id()可以獲取對象的內存地址
也就是說如果 a is b 為 True,那麼 a == b 也為True
換言之,Python中is是比較id(內存地址)相等,==是比較值相等(也就是判斷兩個對象是否指向了同一塊內存區域)。
Preface Gold three silver fou
With the coming of information