2015年11月19日

python == and is operators

在python當中,== operator是用於比較兩個變值之值是否相等,而is operator是比較兩個變數是否為相同物件。
比如說
a=[1,2,3]
b=[1,2,3]
a == b # True
a is b # False

通常我在寫程式的時候,如果比較的對象是None, True, False時,我會習慣用is operator,但是最近發現這種寫法在True, False時不一定能成功,讓我非常的驚訝,即我的程式中出現以下情況:
a=func(...) # a is False
if a is False:
   # do something
在 a is False這一行竟然結果為False而非True,必須將判斷式改為a==False才會為True。