VSCode Python 格式化

问题描述 投票:0回答:1

我使用 VSCode,当我使用 Black 格式化程序(安装了扩展)格式化 Python 代码时,列表的元素会在每一行打印一个。 有什么问题吗?

从此:

a = [17, 24, 91, 96, 67, -27, 79, -71, -71, 58, 48, 88, 88, -16]

对此:

a = [
    17,
    24,
    91,
    96,
    67,
    -27,
    79,
    -71,
    -71,
    58,
    48,
    88,
    88,
    -16,
]

这是settings.json 文件:

{
  "editor.formatOnSave": false,
  "[python]": {
    "editor.defaultFormatter": "ms-python.black-formatter"
  }
}

我尝试使用其他格式化程序,但不喜欢它们

python visual-studio-code format formatter
1个回答
0
投票

来自黑色文档

Black 尝试在每一行渲染一个完整的表达式或简单的语句。如果这符合分配的线路长度,那就太好了。

[...]

如果没有,黑方将查看第一个外部匹配括号的内容,并将其放在单独的缩进行中。

[...]

如果仍然不符合要求,它将使用相同的规则进一步分解内部表达式,每次都缩进匹配的括号。如果匹配括号对的内容以逗号分隔(如参数列表或字典文字等),则 Black 将首先尝试将它们与匹配括号保持在同一行。如果这不起作用,它将把它们全部放在单独的行中。

这就是 Black 格式化代码的方式。如果它将您的列表分成单独的行,则表达式无法容纳在一行中。

黑色默认每行 88 个字符

如果您想更改行长度以便将此特定语句放在一行上,请将以下内容添加到您的 VS Code 配置中:

"black-formatter.args": ["--line-length", "100"]
© www.soinside.com 2019 - 2024. All rights reserved.