Python不等式:!= vs not ==

时间:2012-05-03 04:09:31

标签: python operators

我今天在编写Python时意识到可以将不等式运算符编写为a!=bnot a==b。这让我很好奇:

  1. 两种方式的行为完全相同,还是存在一些微妙的差异?
  2. 有没有理由使用一个而不是另一个?比另一种更常用吗?

2 个答案:

答案 0 :(得分:18)

  1. ==调用__eq__()。如果!=存在,__ne__()会调用,否则相当于not ==
  2. 除非1中的差异很重要。

答案 1 :(得分:10)

注意你的括号。

>>> not "test" == True
True
>>> not "test" and True
False

==优先于not。但notand具有相同的优先级,因此

Python Operators Precedence