bool() <Python 內(nèi)置函數(shù)>

轉(zhuǎn)載須注明出處:簡書@Orca_J35 | GitHub@orca-j35

class bool([x])

該內(nèi)置函數(shù)本質(zhì)上是在調(diào)用 bool 類的構(gòu)造函數(shù),從而獲得一個布爾(bool)對象。bool 類僅有 FalseTrue 兩個實例 (詳見 Boolean Values)。bool 類是 int 類的子類(詳見 Numeric Types — int, float, complex),但不能為 bool 類創(chuàng)建子類。

Tips:在數(shù)值上下文中(numeric contexts) :False 被視作 0,True 被視作 1。

>>> 1 + True
2

對于bool() ,如果省略 x 參數(shù),則會返回 False。

>>> bool() 
False

如果存在 x 參數(shù),bool() 會使用標(biāo)準(zhǔn)真值測試x 進(jìn)行轉(zhuǎn)換。當(dāng) x 的真值為 false 時,bool() 會返回 False ;反之則返回 True。

>>> bool(1)
True
>>> bool(0)
False
>>> bool("False") # 非空字符串始終為True
True
>>> bool([0, 0])
True
>>> bool([])
False
>>> bool(2+2)
True

真值為 false 的對象

默認(rèn)情況下,對象的真值為 true,除非存在以下兩種情況:

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

如果同時定義了上述兩種方法, __bool__() 的優(yōu)先級高于 __len__() 。

>>> class Cls():
    def __bool__(self):
        return True

    def __len__(self):
        return 0

>>> a_cls = Cls()
>>> bool(a_cls)
True

下面是真值為 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)容