2012-05-03 14 views
7

我在寫一些Python的時候才意識到,可以將不等式運算符寫爲a!=bnot a==b。這讓我很好奇:Python不等式:!= vs不== ==

  1. 這兩種方式行爲完全相同,還是有一些細微的差異?
  2. 是否有任何理由使用其中之一?比另一個更常用嗎?

回答

14
  1. ==調用__eq__()。如果存在,則調用__ne__(),否則相當於not ==
  2. 除非1中的差異很重要。
7

請注意括號。

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

==優先not。但notand具有相同的優先級,所以

Python Operators Precedence

+0

你確定嗎? 'not'test'== True'的計算結果爲True,而'(not'test')== True'的計算結果爲False,所以看起來好像'not a == b'的計算結果爲'not(a == b) '。 –

+0

我正在使用AND時,我正在玩這個聲明。 – JustinDanielson

+0

這個答案是'not True == True' – Alain