ute*_*ngr 6 python pep8 python-2.7 python-3.x
在返回之前,我找不到任何使用空白行的PEP引用,因此想知道什么是惯例。
范例A1:
def add(a,b):
""" docstrings"""
a = a + 2
b = b + 2
c = a +b
return c
Run Code Online (Sandbox Code Playgroud)
范例A2:
def add(a,b):
""" docstrings"""
a = a + 2
b = b + 2
c = a +b
return c
Run Code Online (Sandbox Code Playgroud)
范例B1:
def add(a,b):
""" docstrings"""
if a > b:
c = a + b
else:
c = a -b
return c
Run Code Online (Sandbox Code Playgroud)
范例B2:
def add(a,b):
""" docstrings"""
if a > b:
c = a + b
else:
c = a -b
return c
Run Code Online (Sandbox Code Playgroud)
范例C1:
def add(a):
""" docstrings"""
for i in range(3):
a = a + i
return a
Run Code Online (Sandbox Code Playgroud)
范例C2:
def add(a):
""" docstrings"""
for i in range(3):
a = a + i
return a
Run Code Online (Sandbox Code Playgroud)
在这些用例(A,B,C)中,哪些是惯例?如果在return语句之前包含if-else或循环块,是否有任何变化?
对于returns和空白行,没有通用的做法(至少我在PEP样式中没有看到过)。
但是有一个关于空行和文档字符串的内容(请参阅PEP 257):
在文档字符串之前或之后没有空白行。
但是也:
在记录一个类的所有文档字符串(单行或多行)之后插入一个空行-通常来说,该类的方法彼此之间用一条空行隔开,并且该文档字符串需要与第一个方法偏移用空白行。
(强调我的)
我经常看到循环后的空行,有时也看到循环前的空行,return但这取决于函数/循环的长度。通常,决定一种样式(如果没有现有的约定)并坚持下去通常更为重要。
正如PEP8所说:
样式指南是关于一致性的。与该样式指南的一致性很重要。项目内的一致性更为重要。一个模块或功能内的一致性是最重要的。
但是,PEP8建议一定要谨慎使用空白行并分隔逻辑部分(我不认为这是“返回”而是YMMV的逻辑部分),这一点很重要:
使用空行的功能,节制,以表示逻辑部分。
(强调我的)