2009-06-15 62 views

回答

20
errs = dict((f.auto_id, f.errors) for f in form if f.errors) 
4

它可能可以,但按照“可读性计数。”规则(PEP 20)的,我会说这是一个坏主意。 :)

您所另一方面“扁平比嵌套的好。”和“稀疏比密集要好。”,所以我想这是一个爱好:)问题

+0

来自Haskell背景,我宁愿更短的一个。我同意你的看法,有时可读性更值得,但在这个特殊情况下,我的眼睛因为看到四行这么简单而受到伤害。 – 2009-06-15 09:47:11

9

的Python 3.0具有字典推导为由Steef提供的雁较短/更可读的形式:

errs = {f.auto_id: f.errors for f in form if f.errors} 
0

两种方式都是相当的可读性,但你应该把代码的未来的维护者。有时显式更好。列表解析规则虽然:)