【问题标题】:What is PEP8's E128: continuation line under-indented for visual indent?什么是 PEP8 的 E128:为视觉缩进而缩进不足的续行?
【发布时间】:2013-03-04 08:50:44
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: python sublimetext2 pep8


    【解决方案1】:

    PEP-8 recommends 如果您在第一行放置任何内容,则将行缩进到左括号,因此它应该缩进到左括号:

    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。

    【讨论】:

    • 任何人都知道 Django 为什么这样做;有充分的理由吗?似乎跟 PeP-8 一样容易。
    • 这在我见过的 Django 代码中非常普遍(而且在他们的文档中),它可以说取代 PEP-8,毕竟它说“许多项目都有自己的编码风格指南。如果发生任何冲突,此类项目特定指南优先于该项目。"
    • @NickT 你误读了 PEP-8 - PEP-8 建议遵循给定项目使用它的现有约定 - 但在这种情况下,代码不会进入 Django,它会进入你的使用 Django 的项目 - 无需遵循他们的约定。该规则的目的是保持代码库内部的一致性。
    • 请注意,PEP8 还指出您应该在有意义的情况下忽略 PEP8,我认为在这种情况下是有意义的。随意不同意您自己的项目。无论如何,这将很快成为一个有争议的问题,因为在 Django 1.8 中将不推荐使用 patterns()docs.djangoproject.com/en/dev/releases/1.8/…
    【解决方案2】:

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

    【讨论】:

    • 我更喜欢括号而不是反斜杠,第一行是return (,然后每个可返回的项目都在自己的行上,缩进,最后是右括号在单独的行上,缩进级别与return编辑: 像这样pastebin.com/fAe7558X
    • @MarkusMeskanen 是的,我也是。我只是想指出,即使是自动格式也不完全符合这个规范。
    猜你喜欢
    • 2015-05-30
    • 2015-11-25
    • 2014-03-23
    • 2020-01-14
    • 2014-05-26
    • 2017-05-24
    • 2014-03-02
    • 1970-01-01
    • 2019-12-12
    相关资源
    最近更新 更多