使用79个字符的长度,某人将如何制定一个命令,例如:

return method_returning_json()['LongFieldGroup1']['FieldGroup2']['FieldGroup3']['LongValue']


如果我将查找移到下一行,例如:

return method_returning_json()\
    ['FieldGroup1']['FieldGroup2']['FieldGroup3']['Value']


pep8抱怨“ [之前的空格”,因为有多个选项卡。但是,如果我将第二个/第三个/ etc组移动到换行符,它将执行相同的操作。

我知道我可以在行的末尾添加# noqa标记,但我希望有更好的方法。

最佳答案

使用括号内的隐式行连续:

return (method_returning_json()
          ['LongFieldGroup1']
          ['FieldGroup2']
          ['FieldGroup3']
          ['LongValue'])


(您可能需要调整实际的缩进量以使pep8工具满意。)

您甚至可以使用索引括号本身来允许隐式的行连续,尽管我真的没有发现任何特别可读的变体。

# Legal, but probably not desirable.
# At the very least, pick one style and be consistent; don't
# use a variety of options like I show here.
return method_returning_json()[
         'LongFieldGroup1'][
         'FieldGroup2'][
         'FieldGroup3'
         ][
         'LongValue'
         ]

10-07 17:51