如何编写代码以避免 pep8 W502 和 E504 问题

Jim*_*Jim 3 python pep8

我找不到解决 pep8 E502 和 W504 的好方法

我有这样的代码

if (foo(a, b) or 
    foo1(c, d) or
    foo2(e, f) ) and
    foo3(g, h):
Run Code Online (Sandbox Code Playgroud)

如果我这样写,我就会抱怨我违反了“二元运算符后的 W504 换行符”。

但是,如果我在二元运算符之后添加换行符,那么我会抱怨我违反了“ E502 括号之间的反斜杠是多余的

如果我不能把它们变成一行,我应该如何编写代码?

che*_*ner 6

你“应该”写

if (foo(a, b)
    or foo1(c, d)
    or foo2(e, f)
    and foo3(g, h)):
Run Code Online (Sandbox Code Playgroud)

在下一行的开头使用二元运算符。

甚至 PEP-8 对此也有些动摇。它建议新代码的操作符前中断,但只要它在整个文件中保持一致,就接受操作符后中断。

(我更喜欢运算符后的中断。对我来说,它更强烈地表明表达式将继续到下一行。因此,我将只使用--ignore W504。)