PEP8的E128:续行缩进不足以实现视觉缩进是什么?

354 投票
2 回答
324278 浏览
提问于 2025-04-17 19:13

我刚用Sublime Text(搭配Sublime Linter)打开了一个文件,发现了一个我以前从没见过的PEP8格式错误。以下是文本内容:

urlpatterns = patterns('',
    url(r'^$', listing, name='investment-listing'),
)

它标记了第二个参数,也就是那行以url(...)开头的代码。

我本来打算在ST2中关闭这个检查,但我想先搞清楚自己哪里做错了,再决定要不要忽略它。说不定这个问题很重要,我甚至可能会改变我的写法呢 :)

2 个回答

23

这也适用于像这样的语句(PyCharm自动格式化的):

    return combine_sample_generators(sample_generators['train']), \
           combine_sample_generators(sample_generators['dev']), \
           combine_sample_generators(sample_generators['test'])

这会产生相同的样式警告。为了消除这个警告,我不得不把它重写成:

    return \
        combine_sample_generators(sample_generators['train']), \
        combine_sample_generators(sample_generators['dev']), \
        combine_sample_generators(sample_generators['test'])
558

PEP-8建议如果你在第一行写了内容,那么后面的代码行应该缩进到第一个括号的位置。也就是说,你可以选择把代码缩进到开括号的位置:

urlpatterns = patterns('',
                       url(r'^$', listing, name='investment-listing'))

或者你也可以选择在第一行不写任何参数,然后把后面的代码缩进到一个统一的水平:

urlpatterns = patterns(
    '',
    url(r'^$', listing, name='investment-listing'),
)

urlpatterns = patterns(
    '', url(r'^$', listing, name='investment-listing'))

我建议你看看PEP-8的内容,很多地方可以快速浏览一下,理解起来也比较简单,不像一些更专业的PEP那么复杂。

撰写回答