Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python:Pep8 E128缩进错误。。。这个怎么可以用样式来表示呢?_Python_Coding Style_Formatting_Pep8 - Fatal编程技术网

Python:Pep8 E128缩进错误。。。这个怎么可以用样式来表示呢?

Python:Pep8 E128缩进错误。。。这个怎么可以用样式来表示呢?,python,coding-style,formatting,pep8,Python,Coding Style,Formatting,Pep8,我有以下几句话: return render_to_response('foo/page.html', { 'situations': situations, 'active': active_req, }, context_instance=RequestContext(request)) 目前,使用PEP8脚本,第二行出现了“E128:缩进下的续行用于视觉缩进”错误 我尝试了很多不同的格

我有以下几句话:

    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似乎是一个巨大的痛苦


我不介意在第一行有
{
的解决方案(或者它自己),但我希望有一个解决方案,
}、
上下文\u实例……
处于相同的缩进级别

我很确定,它希望您将所有内容缩进到开始部分(如果您需要一个参数),即

否则,

return render_to_response(
    'foo/page.html',
    {
        'situations': situations,
        'active': active_req,
    },
    context_instance=RequestContext(request))
也应该是合法的

或者类似的。请参阅有关正确缩进实践的说明

以下是本规范中有关过往流浪者的示例:

你曾经试过吗

你可以这样做

@render_to('foo/page.html')
def bar(request):
    return {'situations': situations,
            'active': active_req,}

我认为这更简洁,可以帮助您使用PEP8样式…

问题是所有参数都应该缩进到相同的级别。包括初始函数调用行上的任何参数

因此,虽然您可以这样修复它:

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)

我没有,但那看起来很棒。谢谢你的提示!你有没有理由把这一切都变成一句话,一个巨大的表达?将其拆分不会使其变得更长,这意味着您甚至不需要担心任何复杂的样式规则,而且它可能更可读,更易于启动调试。它不希望您将所有内容缩进到开始部分。如果这是真的,第二个就不行了。正如我在回答中所解释的那样,它只是希望您将所有参数缩进到同一级别。@abarnert我的意思是在他的特定情况下——他的第一个参数在“开始参数”处。如果他想在那里有一个参数,它确实需要与开始分隔符对齐。根据政治公众人物8:继续行应该使用Python的隐式行垂直对齐包装的元素,将括号、括号和大括号连接在一起,或者使用悬挂缩进。使用悬挂缩进时,应考虑以下因素:;第一行上不应该有参数,应该使用进一步的缩进来清楚地区分自己是一个延续行。“好吧,有了额外的澄清,没关系。它只是有点让人困惑你最初的方式。政治公众人物的例子肯定很有帮助,特别是因为第二个和最后一个例子完全涵盖了OP的情况。@abarnert是的,你说得对,我修正了它,因为你让我意识到它不清楚。谢谢谢谢你详尽的回答和解释。完全有道理。
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)