2010-03-07 13 views
6

Angenommen, Sie rufen eine Funktion auf, bei der die Anweisung offensichtlich aus Gründen der Lesbarkeit in wenige Zeilen unterteilt werden muss. Allerdings gibt es mindestens zwei Wege, es zu tun:Codierungsstil - Klammern in derselben Zeile oder neuen Zeile halten?

Würden Sie dies tun:

return render(request, template, 
       { 
       'var1' : value1, 
       'var2' : value2, 
       'var3' : value3 
       } 
      ) 

Oder möchten Sie lieber das tun:

return render \ 
(
    request, template, 
    { 
     'var1' : value1, 
     'var2' : value2, 
     'var3' : value3 
    } 
) 

Oder Sie bitte Ihre eigene Formatierung vorschlagen. Bitte listen Sie auch Gründe auf, warum Sie eine bestimmte Formatierung verwenden und was mit der anderen falsch ist.

Dank

Antwort

8

Ich würde wahrscheinlich tun:

return render(
    request, 
    template, 
    { 
     'var1' : value1, 
     'var2' : value2, 
     'var3' : value3 
    } 
) 

Ich würde die Klammer auf der gleichen Linie halten, so dass sucht nach render( Arbeit. Und weil ich es klarer finde. Aber ich würde alle Argumente auf neue Zeilen bringen.

+0

ausgezeichneten Punkt auf der Suche nach „machen (“ – Art

+0

+1 Interessant Ich habe noch nie von dieser Art gedacht –

9

Python offizielle PEP-8 die ersten vermuten läßt.

2

Der zweite sieht aus wie ein C [# +] * - Programm. Die Backslash-Zeilenfortsetzung ist hässlich, anfällig für Probleme mit Leerzeichen, und es gibt keine Entschuldigung, sie zu verwenden, wenn Sie() oder [] verwenden müssen.

+0

+1 nie Backslash verwenden, gibt es immer eine bessere Option.. (continuation inside(), [], {}) – u0b34a0f6ae

+0

von __future__ import geschweifte Klammern –

+0

Vielleicht meintest du 'von __future__ import braces'.' von SOhelp import backticks ' –

7

ich tun würde:

vars = { 
    'var1' : value1, 
    'var2' : value2, 
    'var3' : value3, 
} 
return render(request, template, vars) 
+1

+1, eleganteste der vorgeschlagenen Ansätze. –

+3

+1 Nur weil Sie * können * alles in einer Aussage tun bedeutet nicht Sie * sollte *. –

Verwandte Themen