什么是PEP8's E128:延续行缩进不足的视觉缩进?

刚刚用Sublime Text(用Sublime Linter)打开了一个文件,注意到一个我以前从未见过的PEP8格式错误。原文如下:

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

它标记了第二个参数,即url(...)开始的那行

我即将在ST2中禁用此检查,但在我忽略它之前我想知道我做错了什么。你永远不知道,如果它看起来很重要,我甚至可能改变我的方式:)

299171 次浏览

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。

这也适用于这样的语句(由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'])