2009-06-15 14 views

答えて

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

それはおそらくかもしれないが、「可読性カウント。」ルール(PEP 20)あたりとして、私はそれが悪いアイデアだと思います。 :)あなたが持っている一方

「フラットは、ネストされたよりも良いですが。」と「スパースが。密よりも優れている」ので、私はそれが味:)の問題だと思う

+0

ハスケルの背景から来て、私はより短いものを好むだろう。私は時々読みやすさは価値があるとあなたに同意しますが、この特定のケースでは、私の目はそのような単純なことのために4本の線を見ることに傷つきます。 –

+0

私は、one-liner dict()バージョンは自己文書化しているので読みやすいと主張します。これは、特定のキーと値のペアを持つdictを作成していることを明確に示しています。 4ライナーは悪くありませんが、「ちょうどdictを作成している」と伝えるのに少し時間がかかります。 –

9

のPython 3.0は、dictの内包表記などがありますSteefによって提供さANSERの短い/より読みやすい形式:

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

どちらの方法は、しかし、あなたは、コードの将来のメンテナを考える必要があり、非常に読みやすいです。明示的な方が良い場合もあります。リストの理解はルールだと思う:)

関連する問題