Python 中的 is 和 ==


以前在学Java时,记得判断字符串是否相等要用equals(str)方法,而不能直接用==。equals判断的是值是否相同,==判断的是引用是否相同。内容相同的两个字符串其引用可能是不同的。

今天在用Python时,也刚好遇到判断字符串是否相等的问题,纠结了一下,想知道Python中字符串是否有equals方法,但是并没有找到。在StackOverFLow上看到一篇讨论也是这个问题,有两个回答写得挺好的。

The operatora is breturns True if a and b are bound to the same object, otherwise False. When you create two empty lists you get two different objects, soisreturns False (and thereforeis notreturns True).

isis the identity comparison. #比较引用是否相同

==is the equality comparison. #比较内容是否相同

例如这个例子:

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

python中新建变量时,并不需要指定类型,因为每个变量实际上存储的是一个引用,就是指向一个对象实体的指针。

is 判断的就是这个指针的值是否相同,如果相同则表示两个变量指向同一个对象实体。

而==则比较它们的内容是否相同,这一点与Java中的String不同。

优质内容筛选与推荐>>
1、想和大家讨论一下 对这篇文章的看法
2、Nginx性能优化
3、JavaScript 数组去重
4、CSS3中的pointer-events
5、[svc]linux紧急情况处理


长按二维码向我转账

受苹果公司新规定影响,微信 iOS 版的赞赏功能被关闭,可通过二维码转账支持公众号。

    阅读
    好看
    已推荐到看一看
    你的朋友可以在“发现”-“看一看”看到你认为好看的文章。
    已取消,“好看”想法已同步删除
    已推荐到看一看 和朋友分享想法
    最多200字,当前共 发送

    已发送

    朋友将在看一看看到

    确定
    分享你的想法...
    取消

    分享想法到看一看

    确定
    最多200字,当前共

    发送中

    网络异常,请稍后重试

    微信扫一扫
    关注该公众号