In [22]: bool(None) Out[22]: False In [23]: bool(True) Out[23]: True In [24]: bool([]) Out[24]: False
__len__
不存在__bool__
, 返回结果由__len__
决定
In [32]: class Test(): ...: def __len__(self): ...: return False ...: ...: print(bool(Test())) False In [33]: class Test(): ...: def __len__(self): ...: return True ...: ...: print(bool(Test())) True
__bool__
In [34]: class Test(): ...: def __len__(self): ...: return False ...: ...: def __bool__(self): ...: return True ...: ...: print(bool(Test())) True