我在返回之前找不到任何PEP参考空白行的使用,所以想知道什么是常用做法。
示例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或循环块时是否会发生任何变化?
答案 0 :(得分:2)
对于return
和空白行,没有通常的做法(至少我在样式PEP中看过没有)。
但是有一个关于空白行和文档字符串(请参阅PEP 257):
在docstring之前或之后没有空白行。
但是:
在记录类的所有文档字符串(单行或多行)之后插入一个空行 - 一般来说,该类的方法通过一个空行彼此分隔,并且docstring需要通过空行从第一个方法偏移。
(强调我的)
我经常在循环之后看到空行,有时候在return
之前也会出现空白行,但这取决于函数/循环的长度。决定一种风格(如果没有现有惯例)并坚持下去通常更为重要。
正如PEP8所说:
风格指南是关于一致性的。与此风格指南的一致性非常重要。项目的一致性更为重要。一个模块或函数内的一致性是最重要的。
然而,重要的是PEP8建议谨慎使用空白行并分隔逻辑部分(我认为这不是“返回”的逻辑部分,而是YMMV):
在功能中使用空白行保留,以指示逻辑部分。
(强调我的)