编码风格 - 将括号保留在同一行还是新行?

问题描述:

假设您正在调用一个函数,出于可读性的原因,显然需要将语句分解成几行。然而,有至少两种方式来做到这一点:编码风格 - 将括号保留在同一行还是新行?

你会做到这一点:

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

你还是愿意这样做:

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

或者,请提出你自己的格式。还请列出为什么要使用特定格式的原因以及另一个格式的错误。

感谢

我可能会做的事:

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

我会保持支架在同一行,从而使搜索render(工作。因为我觉得它更清晰。但我会把所有的论点都放在新的路线上。

+0

良好的出发点上搜索“渲染(” – Art 2010-03-07 08:50:04

+0

+1有趣的我从来没有想过这种风格的 – 2010-03-07 15:43:50

Python的官方PEP-8提出的第一个。

第二个看起来像是从C [#+] *程序中逃脱出来的。反斜杠的续行是丑陋的,容易出现拖尾空间的问题,当你使用()或[]时,没有任何理由使用它。

+0

+1从来不使用反斜杠,总是有一个更好的选择。 (延续inside(),[],{}) – u0b34a0f6ae 2010-03-07 11:44:34

+0

from __future__ import braces – 2010-03-08 00:58:25

+0

也许你的意思是'from __future__ import braces'。from SOhelp import backticks' – 2010-03-08 01:53:35

我会做:

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

+1,建议最优雅的方法 – 2010-03-07 18:38:04

+3

+1 Just just because你*可以*在一个声明中这样做并不意味着你*应该*。 – 2010-03-07 18:42:53