簡體   English   中英

在Python中評估布爾表達式

[英]Evaluation of boolean expressions in Python

對象在Python中評估的真值是什么?

相關問題

可以測試任何對象的真值,用於if或while條件或下面的布爾運算的操作數。 以下值被視為false:

  • 沒有

  • 任何數值類型的零,例如, 00L0.00j

  • 任何空序列,例如''()[]

  • 任何空映射,例如{}

  • 用戶定義的類的實例,如果類定義__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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM