Python中的'is not'运算符

55 投票
4 回答
87293 浏览
提问于 2025-04-16 08:45

我注意到有一个比较运算符叫做 is not。我应该把它直接翻译成

!=

而不是

== not

吗?

4 个回答

7

Python 2.7.3 文档,5.9. 比较:

这些符号 <, >, ==, >=, <= 和 != 用来比较两个对象的值。

关于is运算符在同一章节中:

is 和 is not 运算符用来检查对象的身份:如果 x 和 y 是同一个对象,那么 x is y 就是真的。相反,x is not y 就是假的。

21

这不是在比较两个东西的关系,而是在比较它们是否是同一个东西。简单来说,就是 not (A is B) 的意思。

72

为了进一步解释一下Ignacio说的内容

a == ba != b是用来检查两个对象的是否相同的。你可以通过重写一个对象的__eq____ne__方法来定义这个“相同”的意思。

a is ba is not b是用来检查两个对象是否是同一个东西。就像在做id(a) == id(b)一样。

撰写回答