Python: Difference between `is` and `==`?
本问题已经有最佳答案,请猛点这里访问。
Possible Duplicate:
Python ‘==’ vs ‘is’ comparing strings, ‘is’ fails sometimes, why?
在python中,这两个语句之间的区别是什么:
出于实现原因,"odp"是一个不好的例子,但是您不应该使用is,除非您希望两个相同字符串的可能值为false:
1 2 3 4 5 6 | >>> lorem1 ="lorem ipsum dolor sit amet" >>> lorem2 ="".join(["lorem","ipsum","dolor","sit","amet"]) >>> lorem1 == lorem2 True >>> lorem1 is lorem2 False |
正如其他人所说,是考验身份,而不是平等。在本例中,我有两个内容相同的独立字符串。但是,您也不应该依赖于这一点:
1 2 3 4 5 6 | >>> odp1 ="odp" >>> odp2 ="".join(["o","d","p"]) >>> odp1 == odp2 True >>> odp1 is odp2 True |
换句话说,您不应该使用的是比较字符串。
附笔。在python 2.7.10中,
看到这里
The operators is and is not test for object identity: x is y is true if and only if x and y are the same object. x is not y yields the inverse truth value