对象在Python中评估的真值是多少?
相关问题
可以测试任何对象的真值,以在if或while条件中使用或用作以下布尔运算的操作数。以下值为“假”: 没有 假 任何数值类型的零,例如0,0L,0.0,0j。 任何空序列,例如'',(),[]。 任何空映射,例如{}。 用户定义的类的实例,如果该类定义了__nonzero__()或__len__()方法,则该方法返回整数0或bool value时False。 所有其他值都被视为true,因此许多类型的对象始终为true。除非另有说明,否则具有布尔结果的操作和内置函数始终返回0或Falsefalse,返回1或Truetrue。(重要的例外:布尔运算符“或”和“和”始终返回其操作数之一。)
可以测试任何对象的真值,以在if或while条件中使用或用作以下布尔运算的操作数。以下值为“假”:
没有
假
任何数值类型的零,例如0,0L,0.0,0j。
0
0L
0.0
0j
任何空序列,例如'',(),[]。
''
()
[]
任何空映射,例如{}。
{}
用户定义的类的实例,如果该类定义了__nonzero__()或__len__()方法,则该方法返回整数0或bool value时False。
__nonzero__()
__len__()
False
所有其他值都被视为true,因此许多类型的对象始终为true。除非另有说明,否则具有布尔结果的操作和内置函数始终返回0或Falsefalse,返回1或Truetrue。(重要的例外:布尔运算符“或”和“和”始终返回其操作数之一。)
True
https://docs.python.org/2/library/stdtypes.html#truth-value- testing
如前所述,您可以通过修改非零值来覆盖自定义对象。