在Python中,任何類型的對象都可以做真值測試,并且保證返回True或者False。
以下幾種值(不論類型)在真值測試中返回False:
1.None
2.False
3.任何類型的數(shù)字0,包括0,0.0,0L,0j
4.空的序列(sequence)或者映射(mapping)類型對象
5.對于用戶自定義類型的對象,如果其類定義了__nonzero__() 或者 __len__()特殊方法并且返回False或者0
對于最后一條規(guī)則,有幾點需要說明:
1.如果類沒有定義這兩個方法中的任何一個,則這種類型的對象真值測試時總是為True
2.如果類同時定義了__nonzero__() 和 __len__(),只會參考__nonzero__()的返回值
Boolean操作符的特性(直接copy文檔而來):
代碼如下:
x or y: if x is false, then y, else x
x and y: if x is false, then x, else y
not x: if x is false, then True, else False
1.注意and和or操作符的短路特性
2.not運算符要么返回True要么返回False
3.and和or運算符的返回值不限于True和False,它只是對x或者y做真值測試,然后返回其中一個的值(注意不是其真值)
代碼示例:
代碼如下:
s = ''
s = s or 'default value'
print s
運行結(jié)果是:
代碼如下:
default value
新聞熱點
疑難解答
圖片精選