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

问题描述 投票:1回答:1

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

我有这样的代码

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

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

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

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

python pep8
1个回答
4
投票

你是“应该”写的

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

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

甚至PEP-8也有点摇摆不定;它建议新运算符的前运算符中断,但只要它在整个文件中是一致的,就接受运算符后的中断。

(我更喜欢运营商的休息时间。对我而言,更强烈地表明表达式将继续到下一行。因此,我只会使用--ignore W504。)

© www.soinside.com 2019 - 2024. All rights reserved.