当试图遵守PEP8时,有时很难保持80个字符的限制。例如:
for i in range(10):
for k in range(10):
if k < 5:
try:
with line as open(file):
if line.blah in text:
dosomethingwithnospaceleft(bla,
bla,
)
我的观点是,80个字符的限制有时会有点荒谬,在某些方面难以阅读。这种格式背后的原因是什么?对于大多数使用不使用编辑器的人而言,这不是一个过时的标准吗? 20岁。
答案 0 :(得分:6)
限制行长度是好的,因为它通常使文本更具可读性。同样,缩进这么多级别通常表明你应该将某些因素分解为不同的功能。
您可能还希望尽早继续,为您节省缩进级别(if k >= 5: continue
,if line.blah not in text: continue
)。
答案 1 :(得分:0)
来自PEP-008
最大线长
将所有行限制为最多79个字符。
周围仍有许多设备限制为80个字符 线;此外,将窗口限制为80个字符使其成为可能 有几个窗口并排。这样的默认包装 设备破坏了代码的可视化结构,使其更多 很难理解。因此,请将所有行限制为a 最多79个字符。用于流动长文本块(docstrings 或注释),建议将长度限制为72个字符。
包装长行的首选方法是使用Python的暗示 括号,括号和括号内的行继续。排长龙 可以通过包装表达式来分解多行 括弧。这些应该优先使用反斜杠 换行。确保缩进续行 适当。打破二元运算符的首选位置 是在经营者之后,而不是在经营者之前。一些例子:
class Rectangle(Blob):
def __init__(self, width, height,
color='black', emphasis=None, highlight=0):
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))
Blob.__init__(self, width, height,
color, emphasis, highlight)