我将此声明作为几行:
return render_to_response('foo/page.html',
{
'situations': situations,
'active': active_req,
},
context_instance=RequestContext(request))
就目前而言,使用PEP8脚本,它在第二行给出了“E128:视觉缩进下缩进的延续线”错误。
我尝试过一系列不同的格式化方法,而且我能让PEP8停止抱怨的唯一方法是:
return render_to_response('foo/page.html', {
'situations': situations,
'active': active_req,
},
context_instance=RequestContext(request))
但这看起来像垃圾。
连连呢? E124,E126和E128似乎是一个巨大的痛苦!
我不介意在第一行(或者它自己)上有{
的解决方案,但是我希望有一个解决方案},
和context_instance...
位于相同的缩进级别。
答案 0 :(得分:21)
问题是所有参数都应该缩进到同一级别。这包括初始函数调用行上的任何参数。
所以,当你可以修复它时:
return render_to_response('foo/page.html',
{
'situations': situations,
'active': active_req,
},
context_instance=RequestContext(request))
...通常只会让你违反80列规则,即使pep8
没有抱怨也肯定会使你的代码变得更加丑陋。您可能想要的是:
return render_to_response(
'foo/page.html',
{
'situations': situations,
'active': active_req,
},
context_instance=RequestContext(request))
或者,当然,你可以打破你的巨大表情:
d = {
'situations': situations,
'active': active_req,
}
context = RequestContext(request)
return render_to_response('foo/page.html', d, context_instance=context)
答案 1 :(得分:4)
我很确定它要你把所有内容缩进开头(如果你需要一个参数) - 即
return render_to_response('foo/page.html',
{
'situations': situations,
'active': active_req,
},
context_instance=RequestContext(request))
,否则
return render_to_response(
'foo/page.html',
{
'situations': situations,
'active': active_req,
},
context_instance=RequestContext(request))
也应该是合法的。
或者其他一些。有关正确的缩进练习,请参阅pep docs
以下是规范中的相关示例,适用于过往的流浪者:
Yes: # Aligned with opening delimiter foo = long_function_name(var_one, var_two, var_three, var_four) # More indentation included to distinguish this from the rest. def long_function_name( var_one, var_two, var_three, var_four): print(var_one) No: # Arguments on first line forbidden when not using vertical alignment foo = long_function_name(var_one, var_two, var_three, var_four) # Further indentation required as indentation is not distinguishable def long_function_name( var_one, var_two, var_three, var_four): print(var_one) Optional: # Extra indentation is not necessary. foo = long_function_name( var_one, var_two, var_three, var_four)
答案 2 :(得分:4)
您曾尝试使用django-annoying吗?
你可以这样做......
@render_to('foo/page.html')
def bar(request):
return {'situations': situations,
'active': active_req,}
我认为这更干净,它可以帮助您使用PEP8风格......