使用字符长度79,有人会如何制定命令,例如:
return method_returning_json()['LongFieldGroup1']['FieldGroup2']['FieldGroup3']['LongValue']
如果我将查找移动到下一行,例如:
return method_returning_json()\
['FieldGroup1']['FieldGroup2']['FieldGroup3']['Value']
pep8抱怨“之前的空格”,因为有几个标签。但是,如果我将第二个/第三个/ etc组移动到换行符,它会做同样的事情。
我知道我可以将# noqa
标记添加到该行的末尾,但我希望有更好的方法。
答案 0 :(得分:3)
使用括号内的隐式行继续:
echo strpos('a b- c a b* c a b+ c', 'c', 1); //output= 5 (But why? Is is must be 12)
0123456789111
^ 012
| your offset (start search 'c')
(您可能需要调整实际缩进以使return (method_returning_json()
['LongFieldGroup1']
['FieldGroup2']
['FieldGroup3']
['LongValue'])
工具满意。)
你甚至可以使用索引括号本身来允许隐式行继续,虽然我并没有真正发现任何特别可读的变体。
pep8
答案 1 :(得分:2)
引用PEP8:
愚蠢的一致性是小心灵的大地精
Guido的一个重要见解是代码的读取频率远高于编写代码。此处提供的准则旨在提高代码的可读性,并使其在各种Python代码中保持一致。正如PEP 20所说,"可读性很重要"。
风格指南是关于一致性的。与此风格指南的一致性非常重要。项目的一致性更为重要。一个模块或函数内的一致性是最重要的。
然而,知道何时不一致 - 有时风格指南建议不适用。如有疑问,请使用您的最佳判断。查看其他示例并确定最佳效果。并且不要犹豫!
特别是:不要为了遵守这个PEP而破坏向后兼容性!
忽略特定指南的其他一些好理由:
当应用指南时,即使是习惯于阅读此PEP之后的代码的人,也会使代码的可读性降低。
与周围的代码保持一致也会破坏它(可能是出于历史原因) - 尽管这也是一个清理别人混乱的机会(真正的XP风格)。
因为有问题的代码早于指南的引入,所以没有其他理由可以修改该代码。
当代码需要与不支持样式指南推荐功能的旧版Python兼容时。
在我看来(这只是一个意见)有些时候,例如你的破坏行使代码更难阅读,所以这可能是忽略行长指南的合理时间
话虽如此,如果你真的想把线长保持在79以下,一个 方法可能是将命令实际拆分为单独的行:
some_json = method_returning_json()
key1 = 'FieldGroup1'
key2 = 'FieldGroup2'
key3 = 'FieldGroup3'
return some_json[key1][key2][key3]['Value']
这不像单线方法那样简洁,但每条线都更短。哪个是较小的邪恶是你判断的。