==
操作符用于测试相等性。
is
关键字用于测试对象的身份;即我们是否在谈论同一个对象。请注意,多个变量可能引用同一个对象。is
运算符比较对象的身份标识,而 ==
运算符比较对象的值。实际上,x is y
等同于 id(x) == id(y)
。
>>> lorem1 = "lorem ipsum dolor sit amet"
>>> lorem2 = " ".join(["lorem", "ipsum", "dolor", "sit", "amet"])
>>> lorem1 == lorem2
True
>>> lorem1 is lorem2
False
正如其他人所说,它测试的是身份而不是相等性。在这种情况下,我有两个内容相同的独立字符串。然而,你也不应该依赖于这一点:
>>> odp1 = "odp"
>>> odp2 = "".join(["o", "d", "p"])
>>> odp1 == odp2
True
>>> odp1 is odp2
True
>>> odp1 is odp2
返回False。