问题描述
python black formatter 可以嵌套长列表和集合吗?例如:
输入
coworkers = {"amy","bill","raj","satoshi","jim","lifeng","jeff","sandeep","mike"}
coworkers = {
"amy","mike",}
期望的输出
coworkers = {
"amy",}
解决方法
这是不可能的,因为 Black 使用的编码风格可以被视为 PEP 8 的严格子集。请阅读文档 here。具体:
对于垂直空白,Black 尝试在每一行呈现一个完整的表达式或简单的语句。如果这符合分配的行长,那就太好了。
# in:
j = [1,2,3
]
# out:
j = [1,3]
如果没有,Black 将查看第一个外部匹配括号的内容并将其放在单独的缩进行中。
# This piece of code is written by me,it isn't part of the original doc
# in
j = [1,3,4,5,6,7]
# out
j = [
1,7
]
如果仍然不符合要求,它将使用相同的规则进一步分解内部表达式,每次缩进匹配的括号。如果匹配括号对的内容是逗号分隔的(如参数列表或字典文字等),那么 Black 将首先尝试将它们与匹配括号保持在同一行。如果这不起作用,它会将所有这些放在单独的行中。