私はこの声明を数行として持っています:
return render_to_response('foo/page.html',
{
'situations': situations,
'active': active_req,
},
context_instance=RequestContext(request))
現状では、PEP8スクリプトを使用すると、2行目に「E128:視覚的インデントのためにインデントされていない継続行」エラーが表示されます。
私はさまざまなフォーマット方法を試しましたが、PEP8に文句を言わないようにする唯一の方法は次のとおりです。
return render_to_response('foo/page.html', {
'situations': situations,
'active': active_req,
},
context_instance=RequestContext(request))
しかし、これはゴミのように見えます。
提案? E124、E126、E128は大変な苦痛のようです!
最初の行に{
がある(またはそれ自体で)ソリューションは問題ありませんが、},
とcontext_instance...
が同じインデントレベルにあるソリューションがあることを願っています。
問題は、すべてのパラメーターが同じレベルにインデントされることになっていることです。これには、最初の関数呼び出し行のパラメーターが含まれます。
だから、あなたができたこのようにそれを修正している間:
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)
すべてを最初の親にインデントする必要があると確信しています(そこにパラメーターが必要な場合)-つまり、.
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)
Django-迷惑 で試したことはありますか?
あなたはこれを行うことができます...
@render_to('foo/page.html')
def bar(request):
return {'situations': situations,
'active': active_req,}
これはよりクリーンで、PEP8スタイルに役立つと思います...