程序员最近都爱上了这个网站  程序员们快来瞅瞅吧!  it98k网:it98k.com

本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长

+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

暂无数据

为什么使用'=='或'is'比较字符串有时会产生不同的结果?

发布于2019-08-20 23:22     阅读(919)     评论(0)     点赞(29)     收藏(4)


我有一个Python程序,其中两个变量设置为该值'public'在条件表达式中,我的比较var1 is var2失败了,但是如果我将其更改为var1 == var2它则返回True

现在,如果我打开我的Python解释器并进行相同的“是”比较,它就会成功。

>>> s1 = 'public'
>>> s2 = 'public'
>>> s2 is s1
True

我在这里错过了什么?


解决方案


is是身份测试,==是平等测试。您的代码中会发生什么,将在解释器中模拟如下:

>>> a = 'pub'
>>> b = ''.join(['p', 'u', 'b'])
>>> a == b
True
>>> a is b
False

所以,难怪他们不一样,对吧?

换句话说:isid(a) == id(b)



所属网站分类: 技术文章 > 问答

作者:黑洞官方问答小能手

链接:https://www.pythonheidong.com/blog/article/49635/fb719d68b09a63792d33/

来源:python黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

29 0
收藏该文
已收藏

评论内容:(最多支持255个字符)