我找不到找到pep8 E502和W504的好方法
我有这样的代码
if (foo(a, b) or
foo1(c, d) or
foo2(e, f) ) and
foo3(g, h):
如果我这样写,那么我会抱怨自己违反了“ 二进制操作符后W504换行符”。
但是,如果我在二进制运算符之后添加换行符,那么我会抱怨自己违反了“ E502,括号之间的反斜杠是多余的”
如果我不能将它们分成一行,该如何编写代码?
答案 0 :(得分:4)
您“应该”写
if (foo(a, b)
or foo1(c, d)
or foo2(e, f)
and foo3(g, h)):
在下一行的开头加上二进制运算符。
即使PEP-8对此也有些动摇;它建议对新代码使用操作前中断,但在整个文件中一致的情况下接受操作后中断。
(我更喜欢运算符后的中断。对我而言,它更强烈地建议该表达式将继续到下一行。因此,我只使用--ignore W504
。)