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

时间:2019-04-04 18:56:01

标签: python pep8

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

我有这样的代码

if (foo(a, b) or 
    foo1(c, d) or
    foo2(e, f) ) and
    foo3(g, h):

如果我这样写,那么我会抱怨自己违反了“ 二进制操作符后W504换行符”。

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

如果我不能将它们分成一行,该如何编写代码?

1 个答案:

答案 0 :(得分:4)

您“应该”写

if (foo(a, b)
    or foo1(c, d)
    or foo2(e, f)
    and foo3(g, h)):

在下一行的开头加上二进制运算符。

即使PEP-8对此也有些动摇;它建议对新代码使用操作前中断,但在整个文件中一致的情况下接受操作后中断。

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