編寫地道的python(1)

該系列博文原文出自jeff knupp所著的編寫地道的python(writing idiomatic python)一書, 原書版權歸原做者全部.
python

關於if語句
函數

  1. 避免直接與True, False或None去比較. 在python中,如下幾種狀況都會被當作False:
    code

    1. None對象

    2. False內存

    3. 數字類型的0it

    4. 空list或dictio

    5. 0值或者當__len__或__nonzero返回Falseclass

    其餘狀況都會當作True, 你能夠重寫e中的兩個內置函數來自定義如何纔會返回True或者False.變量

    你能夠直接這樣寫 if foo: 而不用這樣寫 if foo == True:重構

    這樣寫的好處在於通過將來的重構以後, foo可能變成了一個int類型的值並且永遠不會 == True, 直接寫 if foo: 就不用再修改原先的函數了.

    這裏有個點要注意區分一下,就是==和is的區別, ==意思是值是否相等,它調用的是類內部的_eq, is意思是他們是不是同一個對象,即兩個變量是否指向的是同一段內存, 有些地方is表現的像==同樣,可是這是不可靠的.

    注意有些狀況是必須與None去比較的,好比

    def insert_data(self, position=None):
        if position is None:

    此處因爲0也是一個有效值因此不能直接寫 if position:

    還有一種狀況是若是與None去比較必須使用is或者is not,不要用==. (PEP8規定)

相關文章
相關標籤/搜索