Python正确的代码格式(PEP8)
作者:互联网
所以我刚刚在python中学到了“List Comprehensions”.其中一些对于单行来说太长了(PEP8),而我正试图找出最好的(最可读的)方法来解决这些问题.
我想出了这个
questions = [
(
q,
q.vote_set.filter(choice__exact='Y'),
q.vote_set.filter(choice__exact='N'),
request.session.get(str(q.id))
)
for q in questions
]
但它仍然抱怨[]之前的空白,特定的pep8错误是E202
这是一个缩进的块.
解决方法:
我可能会这样做:
questions = [(q,
q.vote_set.filter(choice__exact='Y'),
q.vote_set.filter(choice__exact='N'),
request.session.get(str(q.id)))
for q in questions]
请记住,PEP8旨在与您的最佳判断一起使用;在任何情况下都不打算完全遵循它们.当多个规则冲突时,它们的结构也不总是有意义.
偶尔有意破坏规则是可以的;像这样的跳棋只是为了确保你不会意外地打破它们.
编辑:将我的评论移到我的答案中.
你的代码看起来有点太类似于类似Lisp的括号语言或类似C语言的大括号语言,因为你将括号和括号放在不同的行上.
在Python中,您只需使用缩进来显示通常使用括号/括号/括号在另一种语言的单独行中显示的内容.如果您接受代码并进行更改,则与我的版本相同.
真的,不要过分担心PEP检查器.如果你真的喜欢将括号和括号放在不同的行上而得到的额外空格,那就去做吧.它不会使它成为“坏代码”,也不会降低可读性.
标签:python,code-formatting,pep8 来源: https://codeday.me/bug/20190710/1418784.html