2013-05-30 85 views
0

我的「和」是一個looong語句,例如:如何縮短「和」陳述?

if this == that and this == that and this == that: 
    do this 

如何正確地打破這種語句被分成幾行,以符合PEP-8?

+2

通常通過避免它們;有很多'和'語句的代碼通常可以被重構爲更可讀的。 –

+0

檢查這個帖子http://stackoverflow.com/questions/181530/python-style-multiple-line-conditions-in-ifs – frank1fr

+0

使用'所有'的幫助,略.. – wim

回答

0

可以在Python的不同線路,而是將它們標記爲相同的「語義」行,通過插入反斜線:

if  this == that \ 
    and this == that \ 
    and this == that: 
    do this 

即使你有and的或or的在這做你的複雜的條件表達。 希望這有助於。

+3

如果你必須這樣做,那麼使用'(...)'括號,並完全避免反斜槓。 'if(this == that and this == that that and \ n this == that):' –

+3

-1問題是要求符合PEP-8,而PEP-8推薦符合要求 – jamylak

1

PEP8 gives a recommendation

纏繞長行的優選方式是通過使用括號內,括號和大括號Python的暗示 線延續。通過在 括號中包裝表達式,長行 可以分成多行。這些應優先使用反斜槓 用於續行。確保適當地縮進續行 。破解二元運算符 的首選位置在運算符之後,而不是在它之前。

和實施例:

if (width == 0 and height == 0 and 
    color == 'red' and emphasis == 'strong' or 
    highlight > 100): 
    raise ValueError("sorry, you lose") 
if width == 0 and height == 0 and (color == 'red' or 
            emphasis is None): 
    raise ValueError("I don't think so -- values are %s, %s" % 
        (width, height))