【问题标题】:How can I make pylint and autopep8 agree on how to indent wrapped function definitions?如何让 pylint 和 autopep8 就如何缩进包装的函数定义达成一致?
【发布时间】:2018-11-17 15:26:00
【问题描述】:

我怎样才能让美化器 autopep8 和 linter pylint 就如何缩进我的代码达成一致,而不完全禁用缩进格式/linting? 如果是这样的话,我不介意第一种或第二种格式,只要我可以在 VSCode 中点击 Alt+F 并信任输出即可。

美化者希望代码像这样缩进......

# autopep8 prettifier
def sum(
    a: int,
    b: int
) -> int:
    """Return the sum of a and b."""
    return a + b

...但是 linter 想要这样。

# pylint linter
def sum(
        a: int,
        b: int
    ) -> int:
    """Return the sum of a and b."""
    return a + b

PEP8 标准将此列为格式化函数的一种方式,但他们没有提到当右括号放在单独的行时如何缩进。我真的更喜欢有额外的换行符,因为这将输出格式放在自己的行上,它减少了在函数主体中将空行作为第一行的冲动。我稍微喜欢上面的第一个选项,因为这个选项将右括号与必须打开的行对齐。 Google 的 Python 样式指南建议在使用类型提示时使用第一个缩进示例。

# PEP8 standard
def sum(
        a: int,
        b: int) -> int:
    """Return the sum of a and b."""
    return a + b

(对于上面的示例,最好将函数声明简单地放在一行中,但如果不使行太长,这并不总是可行的。)

【问题讨论】:

    标签: python pylint autopep8


    【解决方案1】:

    您可以升级到最新的 pylint。 bad-continuationbad-whitespace 在版本 2.6.0 中已从 pylint 中删除。 The pylint team thinks that black or autopep8 can help you with formatting better than Pylint.

    更一般地说,我认为如果您使用的是自动格式化程序,那么您可以禁用 pylint 的有关格式化的消息。

    【讨论】:

      猜你喜欢
      • 2021-10-27
      • 2021-06-26
      • 2021-11-14
      • 1970-01-01
      • 2019-02-03
      • 1970-01-01
      • 2020-02-28
      • 2013-12-31
      • 2017-10-09
      相关资源
      最近更新 更多