python - 如何让 pylint 和 autopep8 就如何缩进包装的函数定义达成一致?
问题描述
如何让美化器autopep8
和 linterpylint
就如何缩进我的代码达成一致,而不完全禁用缩进格式/linting?如果是第一种或第二种格式,我不介意,只要我可以Alt+F
输入 VSCode 并信任输出即可。
美化者希望代码像这样缩进......
# 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
(对于上面的示例,最好将函数声明简单地放在一行中,但如果不使行太长,这并不总是可行的。)
解决方案
您可以升级到最新的 pylint。bad-continuation
并bad-whitespace
在版本中从 pylint 中删除2.6.0
。pylint 团队认为black
或者autopep8
可以帮助您比 Pylint 更好地格式化。
更一般地说,我认为如果您使用的是自动格式化程序,那么您可以禁用 pylint 关于格式化的消息。
推荐阅读
- c - 为什么当我们在 for 循环中更改 'i' 的条件时,插入排序中的通过次数会发生变化?
- sql-server - 当 CSV 存在格式错误时,使用 BULK IMPORT 将 CSV 导入 SQL Server 时遇到问题
- grafana - 如何覆盖 Grafana 中的时间序列范围?
- javascript - 如何从 AWS Cognito 注册的回调函数中获取值
- java - java.lang.IllegalStateException:应为 BEGIN_OBJECT,但在第 1 行第 3 列路径 $
- wiremock-standalone - wiremock 如何在当前请求映射文件中获取上一个请求的响应属性
- python - 在Python中将二进制字符串拆分为相同数字的列表而没有分隔符?
- swift - 具有“计算” int 值的 Swift 枚举
- javascript - 从 nodeJS 调用 window.alert
- mysql - 在 Archlinux 上启动 mariaDB 服务失败