這篇提到 Python None 的特性。結論是判斷 object a 是否為 None 時, 記得用 「a is None」, 不然會有下列潛在問題:
- a == None: 覆寫 a.__eq__ 可以得到不同結果。
- not a: 無法區分 False、0、[] (或任何 __len__ 傳回 0 的物件) 以及 None。
另外注意函式預設傳回 None。
有個類似的守則, 比對 singleton 時記得用 is 別用 ==, 原因應該一樣, 避免覆寫 __eq__ 的問題。
有個類似的守則, 比對 singleton 時記得用 is 別用 ==, 原因應該一樣, 避免覆寫 __eq__ 的問題。
沒有留言:
張貼留言