[英]Evaluation of boolean expressions in Python
可以測試任何對象的真值,用於if或while條件或下面的布爾運算的操作數。 以下值被視為false:
沒有
假
任何數值類型的零,例如,
0
,0L
,0.0
,0j
。任何空序列,例如
''
,()
,[]
。任何空映射,例如
{}
。用戶定義的類的實例,如果類定義
__nonzero__()
或__len__()
方法,則該方法返回整數零或bool值False
。所有其他值都被認為是真的 - 因此許多類型的對象始終是真的。 除非另有說明,具有布爾結果的操作和內置函數總是返回0或
False
表示false,1或True
表示true。 (重要的例外:布爾運算“或”和“和”總是返回其中一個操作數。)
https://docs.python.org/2/library/stdtypes.html#truth-value-testing
如上所述,您可以通過修改非零來覆蓋自定義對象。
更新 :刪除了Meder帖子的所有重復信息
對於Python <3.0 __nonzero__
自定義對象,可以更改其評估方式。 在Python 3.0中,這是__bool__
( 參考 e- __bool__
)
了解評估的含義非常重要。 一個含義是當一個對象顯式地轉換為bool或由其位置隱式轉換時(在if或while循環中)。
另一個是==評估。 1 == True,0 == False,其他任何東西都不等於==。
>>> None==False
False
>>> 1==True
True
>>> 0==False
True
>>> 2==False
False
>>> 2==True
False
最后,對於is,只有True或False本身。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.