3

我将 Black 用于 Python,它符合 PEP8。它从两行长值字符串的第二行删除缩进:

mydict = {
    'key0': 'value0',
    'key1': 'long-two-lines-string-value1-does-not-fit-in-one-line-has-to-continue'
            'value1'
}

到:

mydict = {
    'key0': 'value0',
    'key1': 'long-two-lines-string-value1-does-not-fit-in-one-line-has-to-continue'
    'value1',
}

一位同事质疑这种变化,我想知道是否有任何资源/参考可以用来支持 Black 格式化代码的决定?

在PEP8 - Python 代码样式指南黑色代码样式中找不到某些内容。

Demo

相关,但没有回答我的问题:在 Python 中格式化多行 dict 的正确方法是什么?


PS:# fmt: off防止Black格式化行,但我不想使用它,因为我的团队一般不使用Black。

4

1 回答 1

1

Black 代码样式是检查的正确位置,您是对的,对于这个用例来说还不是很清楚。我可以说,如果您不将值的字符串分成两个字符串,那么黑方会将其放在您可能更喜欢的一行上。我不确定 Black 是否有一个好方法可以知道何时可以将 2 个字符串连接到一个有意义 - 请参阅此处的讨论。

例如

mydict = {
    "key0": "value0",
    "key1": "long-two-lines-string-value1-does-not-fit-in-one-line-has-to-continue value1",
}

使用括号也会使值更具可读性吗?(这通常是我的首选)例如

mydict = {
    "key0": "value0",
    "key1": (
        "long-two-lines-string-value1-does-not-fit-in-one-"
        "line-has-to-continue value1"
    ),
}

顺便说一句,注意到黑色没有用双引号替换你的单引号;这是您用于项目的设置吗?

于 2020-10-09T20:40:00.423 回答