微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

具有多行值的PEP8多行字典

如何解决具有多行值的PEP8多行字典

我将Black用于Python,conforms to 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',}

一位同事对此更改提出了质疑,我想知道是否有任何资源/参考可用于备份布莱克决定格式化代码的决定?

PEP8 -- Style Guide for Python CodeThe Black code style中找不到任何内容

Demo

相关,但未回答我的问题:What is the proper way to format a multi-line dict in Python?


PS:# fmt: off阻止Black格式化行,但是我不想使用它,因为我的团队通常不使用Black。

解决方法

The Black code style是检查的正确位置,而您是正确的,对于此用例而言,它不是很清楚。我可以说,如果您不将值的字符串分成两个字符串,那么Black会将其放在您可能更喜欢的一行上。我不确定Black是否有办法知道何时可以将2个字符串连接为一个字符串-请参阅讨论here

例如

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"
    ),}

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。