如何在Python函数定义中按照pep8规范换行?

5

我有一行代码,超过了79个字符的限制:

def ReportResults(self, intTestID, startTime, stopTime, version, serverType):

如何按照pep8规范正确地断行?


快速阅读PEP-8就可以回答你的问题,不是吗?在缩进部分看一下示例就好了。 - dimo414
1
只要你关心PEP8,就不应该将函数名大写,并且应该使用snake_case - juanpa.arrivillaga
我们想严格遵循pep8,但实际上我们在TestComplete中使用Python进行GUI测试,而他们产品中的一些实现使用了大写函数名称,因此我们决定也使用帽子模式,以免让自己更加困惑 :) - Michael
“缩进”段落中没有足够的正确和不正确示例。如果开发人员在新行上留下一个闭合括号会怎样呢?我认为这是一种违规行为。 - Greg Eremeev
2个回答

8
根据PEP8
Python标准库比较保守,要求每行限制在79个字符以内(docstrings/注释限制在72个字符以内)。
在我看来,这是最主要的规则需要遵守。

Besides this rule, PEP8 recommends aligning brackets, so I would do something like this:

def report_results(self,
                   intTestID,
                   startTime,
                   stopTime,
                   version,
                   serverType):
    pass

Note that I renamed your method report_results, following the recommended lower_case_with_underscores. Also, notice that the indentation should be aligned with the first letter of the first parameter and not the parenthesis.


我真的希望我们可以像Haskell那样在列表中使用逗号,但我同意这是在Python中处理它的最佳方式。要么所有内容都在一行上,要么每个项目都在自己的行上。 - Pierce Darragh
1
但是... mixedCase 不推荐用于函数。lower_case_with_underscores 才是规范。 - Matthias
1
真遗憾他们选择了这样可怕的写作风格,到处都是大块的空白。当然,缩进风格偏好因人而异,但像看待你的代码像一块洞酪一样似乎并不令人向往。 - 303

0

79个字符只是指导方针而非硬性规定

有些团队更喜欢使用更长的行长度。对于完全或主要由可以就此问题达成一致的团队维护的代码,可以将名义上的行长度从80增加到100个字符(有效地将最大长度增加到99个字符),前提是注释和文档字符串仍然在72个字符处换行。

此外,该行只有77个字符,所以您应该没有问题。但是,如果您想将其分解,可以使用隐式连续性:

def ReportResults(self,
                  intTestID,
                  startTime,
                  stopTime,
                  version,
                  serverType):

如果您的函数签名超出了您正在使用的字符限制,那么这表明该函数具有太多的参数。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接