可能重复:
String comparison in Python: is vs. ==
When is the==
operator not equivalent to theis
operator? (Python)
我仍然对Python很陌生。我听说有人说使用is
,而不是==
因为“这不是C”。但是我有一些代码x is 5
并且没有按预期工作。
因此,遵循正确的Python / PEP样式,何时使用is
以及何时使用==
?
答案 0 :(得分:10)
您应该使用==
来比较两个值。您应该使用is
来查看两个名称是否绑定到同一个对象。
您几乎不应该使用x is 5
因为根据实现可能会实现小整数。这可能会导致令人惊讶的结果:
>>> x = 256
>>> x is 256
True
>>> x = 257
>>> x is 257
False
答案 1 :(得分:2)
这两个运营商有不同的含义。
is
测试对象标识。这两个操作数是否指向同一个对象?==
测试值的相等性。这两个操作数是否具有相同的值?在比较x
和5
时,你总是对价值而不是持有价值的对象感兴趣。