2017-09-26 47 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建议谨慎使用空行和单独的逻辑部分(我不认为这是一个合理的部分“返回”,但情况因人而异):

使用空行功能,节省,表示逻辑节

(重点煤矿)