python';不是';操作人员

python';不是';操作人员,python,Python,我注意到有一个比较运算符不是。我应该把它翻译成中文吗 != 而不是 == not 意思是“A不等于B”,而不是“A等于B”。这不是关系比较,而是身份。它转换为而不是(A是B)来扩展Ignacio所说的内容: a==b和a!=b测试两个对象是否具有相同的值。您可以覆盖对象的\uuuu eq\uuu和\uu ne\uuu方法来确定这意味着什么 a是b和a不是b测试两个对象是否相同。这就像做id(a)==id(b): 操作符,==,>=,古老的伊格纳西奥评论中的链接断了,应该是:(在锚中添加了一

我注意到有一个比较运算符
不是
。我应该把它翻译成中文吗

!= 
而不是

== not

意思是“A不等于B”,而不是“A等于B”。

这不是关系比较,而是身份。它转换为
而不是(A是B)

来扩展Ignacio所说的内容:

a==b
a!=b
测试两个对象是否具有相同的值。您可以覆盖对象的
\uuuu eq\uuu
\uu ne\uuu
方法来确定这意味着什么

a是b
a不是b
测试两个对象是否相同。这就像做
id(a)==id(b)


操作符,==,>=,古老的伊格纳西奥评论中的链接断了,应该是:(在锚中添加了一个连字符)我想应该是有什么区别?如果A不等于B,A必须等于某个东西,让我们假设A等于C。这意味着C不等于B。因此,A不等于B(C)。@John:“A等于C”,“A不等于B”,“C不等于B”并不意味着“(不是(B))等于C”;由此得出“a等于不等于B”的结论是错误的。这一评论是基于对问题的误解。“A不是B”不会被解析为“A是(不是B)”。它被解析为“A(is)B”,其中“is not”是一个测试“not(A is B)”的操作符。除非没有竞争condition@Lie瑞恩:想详细说明一下吗?我不知道。看:,特别是迈克·格雷厄姆关于
id(a.test)==id(b.test)
a.test就是b.test
的回答;换言之,
id(a)==id(b)
并不保证在进行比较时
a
b
仍然有效,当
a
在比较之前被垃圾收集,而
b
刚刚被创建时,可能会引起一些意外。有趣的是,这打破了我通常的思维规则,即“非X”的优先级高于其他任何事物。它被解析为“A(is)B”,其中“is not”是一个原子运算符。@JonathanHartley
A is not B
不能被解析为
A is(not B)
,因为在python中
is
运算符的优先级高于
not
运算符。因此,解析它的唯一可能方法是as
而不是
。这也是为什么
a==not b
是一个语法错误,
not a==b
被解析为
not(a==b)
A != B