3 回答

TA貢獻(xiàn)1848條經(jīng)驗(yàn) 獲得超6個(gè)贊
Python 的str類對(duì)其__eq__方法使用值相等。在 Python 中,類可以重寫__eq__來定義==行為方式。
與 Java 相比,Java==總是執(zhí)行引用相等。在 Java 中,僅當(dāng)兩個(gè)對(duì)象實(shí)際上是同一個(gè)對(duì)象時(shí)==才會(huì)返回;true無論其內(nèi)容如何。Java 的運(yùn)算符==與 Python 的運(yùn)算符更具可比性is。
正如評(píng)論中指出的,更好的比較是比較這些:
"a".equals("a") // Java
"a" == "a" # Python
Java 的String類具有equals值相等性而不是引用相等性。

TA貢獻(xiàn)1824條經(jīng)驗(yàn) 獲得超8個(gè)贊
在Python中==
用于通過重寫運(yùn)算符來比較對(duì)象的內(nèi)容。eq?(a, b)方法,str
類已重寫此方法以便比較對(duì)象的內(nèi)容
These?are?the?so-called?“rich?comparison”?methods.?The?correspondence? between?operator?symbols?and?method?names?is?as?follows:?x<y?calls? x.__lt__(y),?x<=y?calls?x.__le__(y),?x==y?calls?x.__eq__(y),?x!=y?calls? x.__ne__(y),?x>y?calls?x.__gt__(y),?and?x>=y?calls?x.__ge__(y).
但是在java中運(yùn)算符在這里==
用來比較對(duì)象的引用
使用“==”運(yùn)算符來比較文本值是 Java 初學(xué)者最常犯的錯(cuò)誤之一。這是不正確的,因?yàn)椤?=”僅檢查兩個(gè)字符串的引用相等性,即它們是否引用同一對(duì)象。
因此,在java中要比較對(duì)象的內(nèi)容,您必須使用equals
在類中被覆蓋的對(duì)象String
。
if?(str1.equals(str2))
所以java==
運(yùn)算符等于is
python中的運(yùn)算符,它比較兩個(gè)引用是否指向同一個(gè)對(duì)象

TA貢獻(xiàn)1853條經(jīng)驗(yàn) 獲得超6個(gè)贊
以下是引用其他的:“我們可以使用 == 運(yùn)算符進(jìn)行引用比較(地址比較),使用 .equals() 方法進(jìn)行內(nèi)容比較。簡單來說,== 檢查兩個(gè)對(duì)象是否指向同一內(nèi)存位置,而.equals() 計(jì)算對(duì)象中值的比較。”
添加回答
舉報(bào)