1. 程式人生 > >Python實踐7-布林值False

Python實踐7-布林值False

布林值

  • 所有標準物件均可用於布林測試,每個物件天生具有布林True或False
  • 空物件, 值為零的任何數字或者None的布林值都是False
  • 使用者建立的類例項如果定義了nonzero(__nonzero__())或length(__len__())且值為0,那麼他們的布林值就是False。如果nonzero和length同時存在,以nonzero的結果為準。

標準物件裡的False

def print_boolean_value(value):
    if value:
        print('True')
    else:
        print('False')


if __name__ == '__main__':
    # 下面所有的結果都是False
    print_boolean_value(None)
    print_boolean_value(False)
    # 所有值為0的數
    print_boolean_value(0)
    print_boolean_value(0.0)
    print_boolean_value(0L)
    print_boolean_value(0.0 + 0.0j)
    print_boolean_value("")
    print_boolean_value([])
    print_boolean_value(())
    print_boolean_value({})

自定義類例項的False

class A(object):
    def __nonzero__(self):
        return False


class B(object):
    def __len__(self):
        return 0


class C(object):
    def __nonzero__(self):
        return False

    def __len__(self):
        return 1


class D(object):
    pass


if __name__ == '__main__':
    # 下面的結果是False
    print_boolean_value(A())
    print_boolean_value(B())
    print_boolean_value(C())
    # 下面的結果是True
    print_boolean_value(D())

程式碼下載

本系列文章和程式碼已經作為專案歸檔到github,倉庫地址:jumper2014/PyCodeComplete。大家覺得有幫助就請在github上star一下,你的支援是我更新的動力。什麼?你沒有github賬號?學習Python怎麼可以沒有github賬號呢,快去註冊一個啦!