多个控制语句并在python中保持80个字符行

时间:2012-06-28 07:51:35

标签: python

当试图遵守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岁。

2 个答案:

答案 0 :(得分:6)

限制行长度是好的,因为它通常使文本更具可读性。同样,缩进这么多级别通常表明你应该将某些因素分解为不同的功能。

您可能还希望尽早继续,为您节省缩进级别(if k >= 5: continueif 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)