【发布时间】:2010-12-03 01:07:45
【问题描述】:
我有一个 Python 程序,其中两个变量设置为值 'public'。在条件表达式中,我有比较 var1 is var2 失败,但如果我将其更改为 var1 == var2 它返回 True。
现在,如果我打开我的 Python 解释器并进行相同的“is”比较,它就会成功。
>>> s1 = 'public'
>>> s2 = 'public'
>>> s2 is s1
True
我在这里错过了什么?
【问题讨论】:
-
当您通过例如
input = raw_input("Decide (y/n): ")读取控制台输入时也会出现此问题。在这种情况下,输入“y”和if input == 'y':将返回“True”,而if input is 'y':将返回False。 -
这个博客提供了比任何答案都更完整的解释guilload.com/python-string-interning
-
正如@chris-rico 提到的,我在这里很好的解释stackoverflow.com/q/15541404/1695680
标签: python string comparison identity equality