PEP8 - E129和E127 / E128之间的矛盾

时间:2017-06-19 19:12:25

标签: python coding-style pep8

根据PEP标准,缩进应该出现在二元运算符之前。此外,多行条件应括在括号内,以避免在换行前使用反斜杠。这两个约定导致以下情况

if (long_condition_1
    or long_condition_2):
    do_some_function()

此代码依次打破PEP8中的E129 visually indented line with same indent as next logical line。但是,第二行必须缩进四个空格,否则会破坏E128或E127以获得缩进或过度缩进的行。

如何对上述内容进行格式化以确认符合PEP8标准?

2 个答案:

答案 0 :(得分:2)

这应该可以正常使用

<number>

答案 1 :(得分:1)

这个问题的答案随着时间的推移而改变。由于PEP8的立场有所改变,W503现在被普遍认为是针对PEP8的。

PEP8现在说可以在OR之前或之后中断,但要使其在本地保持一致。

对于较新的代码,首选Knuth样式(我认为这是在运算符之前断开)。

if (
    long_condition_1
    or long_condition_2
    or (
        long_condition_3
        and long_condition4
    )
):
    do_some_function()