布爾類型(bool)

轉(zhuǎn)載須注明出處:簡書@Orca_J35 | GitHub@orca-j35,所有筆記均托管于 python_notes 倉庫

本筆記涵蓋了 Boolean Values 中的全部內(nèi)容,并進(jìn)行了擴展

相關(guān)筆記:

  • 『真值測試.md』
  • 『bool.md』
  • 『3.2. 標(biāo)準(zhǔn)類型層次.md』

布爾值包含兩個常量對象 FalseTrue,用于表示真值。

bool 類是 int 類的子類(詳見 Numeric Types — int, float, complex),但不能為 bool 類創(chuàng)建子類。

issubclass(bool,int) #> True

因為 bool 是 int 的子類,所以 bool 同樣支持 int 類型支持的操作,詳見筆記『數(shù)值類型(int,float,complex).md』和『numbers - Numeric abstract base classes.md』

在數(shù)值上下文中(e.g., 被用作算數(shù)運算符的操作數(shù)時),FalseTrue 的行為與整數(shù) 0 和 1 類似:

False + True + True #> 2

如果將 bool 值轉(zhuǎn)換為字符串,會得到 "False""True" ,而非 '0''1'。

str(True),repr(False) #> ('True', 'False')

內(nèi)置函數(shù) bool() 用于獲取對象的布爾值。

布爾意義

Python 中的所有對象均具備布爾意義。
默認(rèn)情況下,對象的真值為 True,除非存在以下兩種情況:

  • 對象中定義了 __bool__() 方法,并且該方法返回 False
  • 對象中定義了 __len__() 方法,并且該方法返回 0

如果同時定義了上述兩種方法, __bool__() 的優(yōu)先級高于 __len__() 。如果類定義中不包含 __len__()__bool__(),則該類的所有實例均為真。

下面是真值為 false 的內(nèi)置對象:

  • 常量 NoneFalse 被定義為 false
  • 任何等于 0 的數(shù)值類型:0, 0.0, 0j, Decimal(0), Fraction(0, 1)
  • 空序列(sequences)和集合(collections): '', (), [], {}, set(), range(0)
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容