Python 中的 is 和 ==


以前在學Java時,記得判斷字符串是否相等要用equals(str)方法,而不能直接用==。equals判斷的是值是否相同,==判斷的是引用是否相同。內容相同的兩個字符串其引用可能是不同的。

今天在用Python時,也剛好遇到判斷字符串是否相等的問題,糾結了一下,想知道Python中字符串是否有equals方法,但是並沒有找到。在StackOverFLow上看到一篇討論也是這個問題,有兩個回答寫得挺好的。

The operator a is b returns True if a and b are bound to the same object, otherwise False. When you create two empty lists you get two different objects, so is returns False (and therefore is notreturns True).

 

is is the identity comparison. #比較引用是否相同

== is the equality comparison. #比較內容是否相同

 

例如這個例子:

>>> [] is []
False
>>> [] == []
True
>>>

python中新建變量時,並不需要指定類型,因為每個變量實際上存儲的是一個引用,就是指向一個對象實體的指針。

is 判斷的就是這個指針的值是否相同,如果相同則表示兩個變量指向同一個對象實體。

而==則比較它們的內容是否相同,這一點與Java中的String不同。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM