首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >为什么在Python中使用‘=’或‘is’来比较字符串有时会产生不同的结果?

为什么在Python中使用‘=’或‘is’来比较字符串有时会产生不同的结果?
EN

Stack Overflow用户
提问于 2018-06-13 06:29:06
回答 2查看 0关注 0票数 0

我有一个Python程序,其中两个变量被设置为'public'。在一个条件表达式中,我有一个比较var1 is var2但如果我把它改为var1 == var2它回来了True

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

代码语言:txt
复制
>>> s1 = 'public'
>>> s2 = 'public'
>>> s2 is s1
True

我在这里错过了什么?

EN

回答 2

Stack Overflow用户

发布于 2018-06-13 15:06:57

is关键字是对象标识的测试,而==是一种价值比较。

如果你用is,如果并且只有当对象是同一个对象时,结果才是真。然而,==对象的值在任何时候都是相同的。

票数 0
EN

Stack Overflow用户

发布于 2018-06-13 16:20:37

最后要注意的一点是,可以使用Intern函数来确保获得对同一个字符串的引用:

代码语言:txt
复制
>>> a = intern('a')
>>> a2 = intern('a')
>>> a is a2
True

正如上面所指出的,可能不应该确定字符串上的相等性,但这可能有助于了解是否需要使用某种奇怪的要求。is

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100005364

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档