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”是一个原子运算符。@JonathanHartleyA is not B
不能被解析为A is(not B)
,因为在python中is
运算符的优先级高于not
运算符。因此,解析它的唯一可能方法是as而不是。这也是为什么a==not b
是一个语法错误,not a==b
被解析为not(a==b)
。
A != B