補充一個重要的小觀念,在 Python 所有物件中,所有的物件都有布林值,也就是不論是怎樣的 obj,你都可以跑 bool(obj) 來取得其布林值,而這些其實是源自於內建的 __bool__ function 而來。
bool(obj) => obj.__bool__()
而且更重要的一點,是除了 None 與 False 和 0 ,以及集合物件的空集合以外,其他的物件的布林值都是 True。這一點常常被利用在上面提到的 short-circuit evaluation。因此我們常見到這樣的使用方式 if obj = True: 來作為條件式的條件。這裡有一篇不錯的文章連結跟大家分享: Python Booleans: Use Truth Values in Your Code