Cas*_*ash 11 python boolean object
对象在Python中评估的真值是什么?
相关问题
med*_*iev 20
可以测试任何对象的真值,用于if或while条件或作为下面布尔运算的操作数.以下值被视为false:
没有
假
任何数字类型,例如零,
0,0L,0.0,0j.任何空序列,例如
'',(),[].例如,任何空映射
{}.用户定义的类的实例,如果类定义了一个
__nonzero__()或__len__()方法,则该方法返回整数零或bool值False.所有其他值都被认为是真的 - 因此许多类型的对象始终是真的.除非另有说明,否则具有布尔结果的操作和内置函数始终返回0或0
False和0或为trueTrue.(重要的例外:布尔运算"或"和"和"总是返回其中一个操作数.)
https://docs.python.org/2/library/stdtypes.html#truth-value-testing
如上所述,您可以通过修改非零来覆盖自定义对象.
更新:删除了Meder帖子的所有重复信息
对于Python <3.0中的自定义对象,__nonzero__可以更改其评估方式.在Python 3.0中这是__bool__(参考 e-satisf)
了解评估的含义非常重要.一个含义是当一个对象显式地转换为bool或由其位置隐式转换时(在if或while循环中).
另一个是==评估.1 == True,0 == False,其他任何东西都不等于==.
>>> None==False
False
>>> 1==True
True
>>> 0==False
True
>>> 2==False
False
>>> 2==True
False
Run Code Online (Sandbox Code Playgroud)
最后,对于is,只有True或False本身.
| 归档时间: |
|
| 查看次数: |
13131 次 |
| 最近记录: |