代碼中經常會有變量是否為None的判斷,有三種主要的寫法:
第一種是`if x is None`;
第二種是 `if not x:`;
第三種是`if not x is None`(這句這樣理解更清晰`if not (x is None)`) 。
`if x is not None`是最好的寫法,清晰,不會出現錯誤,以后堅持使用這種寫法。
使用if not x這種寫法的前提是:必須清楚x等於None, False, 空字符串"", 0, 空列表[], 空字典{}, 空元組()時對你的判斷沒有影響才行。
foo is None 和 foo == None的區別
如果比較相同的對象實例,is總是返回True 而 == 最終取決於 "eq()"
==只要相等,is表明要一樣,同一個對象