Как написать код, чтобы избежать pep8 W502 и E504 проблемы - PullRequest
1 голос
/ 04 апреля 2019

Я не смог найти хороший способ обойти pep8 E502 и W504

У меня есть такой код

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

Если я напишу так, то получу жалобу, что нарушаю« W504 разрыв строки после бинарного оператора ».

Однако, если я добавляю разрыв строки после бинарного оператора, то получаю жалобу, что нарушаю « E502 обратный слеш избыточен между скобками "

Если я не смог сделать их одной строкой, как мне написать код?

1 Ответ

4 голосов
/ 04 апреля 2019

Вы "должны" написать

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

с двоичным оператором в начале следующей строки.

Даже PEP-8 немного колеблется на этом; он предлагает разрывы перед оператором для нового кода, но допускает разрывы после оператора, если он согласован во всем файле.

(Я предпочитаю постоператорские разрывы. Для меня это более убедительно говорит о том, что выражение будет продолжаться на следующей строке. Поэтому я бы просто использовал --ignore W504.)

...