首页 > 解决方案 > 打破长 if 语句的推荐方法是什么?(二元运算符后的 W504 换行符)

问题描述

目前推荐用“and”和“or”运算符打破长长的if语句的方法是什么?

第一个选项

使用以下样式(来自 PEP8)和 flake8 我收到警告:二元运算符后的 W504 换行符:

if (this_is_one_thing and
    that_is_another_thing):
    do_something()

第二个选项

if (this_is_one_thing
    and that_is_another_thing):
    do_something()

现在我在二元运算符之前收到警告 W503 换行符。第二个似乎符合PEP8 的建议

我试图找到答案,但我仍然不确定。我认为也许使用第二个选项并禁用 W503 警告将是解决此问题的一种方法?

标签: pythonpython-3.xpep8flake8

解决方案


如果我们查阅flake 8上的文档,我们会看到:

反模式

注意:尽管在反模式部分,这很快就会被认为是最佳实践。

income = (gross_wages
          + taxable_interest)

最佳实践

注意:尽管在最佳实践部分,这很快就会被认为是一种反模式

income = (gross_wages +
          taxable_interest)

因此,二元运算符之前的换行符将被视为最佳实践。

W504的文档在新行之前建议操作员作为最佳实践,但没有给出注释:

反模式

income = (gross_wages +
          taxable_interest)

最佳实践

income = (gross_wages
          + taxable_interest)

推荐阅读