打破长 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 警告将是解决此问题的一种方法?

原文由 ann.piv 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 488
1 个回答

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

反模式

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

 income = (gross_wages
          + taxable_interest)

最佳实践

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

 income = (gross_wages +
          taxable_interest)

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

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

反模式

income = (gross_wages +
          taxable_interest)

最佳实践

income = (gross_wages
          + taxable_interest)

原文由 Willem Van Onsem 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题