2017-09-26 112 views
0

在返回之前我找不到任何使用空行的PEP引用,所以想知道什麼是常用操作。Python函數返回語句之前的空行

實施例A1:

def add(a,b): 
    """ docstrings""" 
    a = a + 2 
    b = b + 2 
    c = a +b 
    return c 

實施例A2:

def add(a,b): 
    """ docstrings""" 
    a = a + 2 
    b = b + 2 
    c = a +b 

    return c 

實施例B1:

def add(a,b): 
    """ docstrings""" 
    if a > b: 
     c = a + b 
    else: 
     c = a -b 
    return c 

實施例B2:

def add(a,b): 
    """ docstrings""" 
    if a > b: 
     c = a + b 
    else: 
     c = a -b 

    return c 

實施例C1:

def add(a): 
    """ docstrings""" 
    for i in range(3): 
     a = a + i 
    return a 

實施例C2:

def add(a): 
    """ docstrings""" 
    for i in range(3): 
     a = a + i 

    return a 

哪些是在這些用例(A,B,C)中的常見的做法?返回語句之前涉及if-else或loop的塊是否會發生任何變化?

+3

有沒有普遍的做法。我更喜歡在return語句之前有空行,其他人可能不喜歡。按照您正在進行的項目的慣例,或者如果它是一個新項目,堅持你的項目。 – Maroun

+1

從[PEP8](https://www.python.org/dev/peps/pep-0008/#blank-lines):「_在函數中使用空行,謹慎地指示邏輯部分。」。正如Maroun所說,這歸結於個人偏好或項目的慣例。對我來說是每個案例的決定;在像你這樣的小函數中,我通常在返回語句之前不留空行。 –

+0

有關文檔串後面的空行,請參見[PEP 257](https://www.python.org/dev/peps/pep-0257/)中的示例:無空行。 –

回答

2

對於return s和空白行,沒有常見的做法(至少我在風格PEP中沒有見過)。

但有關於空行和文檔字符串之一(見PEP 257):

有沒有空行之前或之後的文檔字符串。

但也:

插入所有文檔字符串後一個空行(一行或多行)該文檔類 - 一般來說,該類的方法是彼此分開通過一個空白行,並且docstring需要通過空行偏移第一個方法。

(重點煤礦)

我經常看到空行循環後,也return之前有時空行,但依賴於功能/環路的長度。決定一種風格(如果沒有現存的風格)並堅持下去通常更重要。

由於PEP8所言:

風格指南約爲一致性。與此風格指南的一致性非常重要。項目中的一致性更重要。一個模塊或功能內的一致性是最重要的。

然而,重要的是PEP8建議謹慎使用空行和單獨的邏輯部分(我不認爲這是一個合理的部分「返回」,但情況因人而異):

使用空行功能,節省,表示邏輯節

(重點煤礦)