Python有truthy岬其中非布尔值基本上是“被迫”为布尔的,如图所示的一个概念,在这里:
4.1真值测试
可以测试任何对象的真值,用在
if或while条件中或用作以下布尔运算的操作数。以下值为“假”:
None False- 任何数值类型的零,例如
0,0.0,0j。- 任何空序列,例如
'',(),[]。- 任何空映射,例如
{}。- 用户定义的类的实例,如果该类定义了
__bool__()或__len__()方法,则该方法返回整数0或bool
value时False。所有其他值都被认为是真实的-因此许多类型的对象总是真实的。
除非另有说明,否则具有布尔结果的操作和内置函数始终返回,
0或者返回Falsefalse1或Truetrue。(重要的例外:布尔运算,or并且and始终返回其操作数之一。)
底线是
1.9“所有其他值都被认为是”子句下的内容,因为它与任何不被认为是假的值匹配。它最接近的是第三个(数字类型),但是由于它不是零,所以还不能
完全实现 。



