【问题标题】:Is it possible to use PEP8 with column indentation是否可以使用带有列缩进的 PEP8
【发布时间】:2019-05-20 11:30:40
【问题描述】:

我经常有一些代码,出于可读性的原因,我想按列结构缩进。例如:

props = {
    'name'    : foo(df, 'name'),
    'address' : foo(df, 'address'),
    'phone'   : foo(df, 'phone'),
    'surname' : foo(df, 'surname'),
    'age'     : foo(df, 'age'),
    'height'  : foo(df, 'height'),
    'weight'  : foo(df, 'weight'),
    ...
}

由于多余的空格,这当然会导致 PEP8 警告,这会损害我们的样式检查器和格式化程序。

有没有办法让列结构和 PEP8 以某种方式和平相处?

【问题讨论】:

  • PEP 8 是一个约定。在您的情况下,它是 PEP8 或您的风格。你必须做出这个决定。
  • 每个样式检查器都有禁用特定代码或文件块的警告或格式化的机制(例如How to disable a pep8 error in a specific file?)。您也可以按照建议将其配置为禁用某些规则。这取决于您使用的是什么工具。
  • 我相信冒号后面的空格没有规则。也许在冒号后添加额外的空格。

标签: python pep8 pep


【解决方案1】:

您可以在 PEP8 配置中disable a particular rule

[pycodestyle]
count = False
ignore = E226,E302,E41  <-------------- here I am!
max-line-length = 160
statistics = True

Here 是要忽略的错误代码。


如果您不想在任何地方禁用规则,您可以在您不想被检查的行末尾添加#noqa 注释。该行中的所有 PEP8 错误都将被禁用。

如果您使用多个 linter,您也应该检查并重新配置它们。

【讨论】:

    【解决方案2】:

    您可以在冒号后添加多余的空格,如下所示:

    props = {
        'name':     foo(df, 'name'),
        'address':  foo(df, 'address'),
        'phone':    foo(df, 'phone'),
        'surname':  foo(df, 'surname'),
        'age':      foo(df, 'age'),
        'height':   foo(df, 'height'),
        'weight':   foo(df, 'weight'),
        ...
    }
    

    【讨论】:

      猜你喜欢
      • 2016-04-23
      • 2020-02-23
      • 1970-01-01
      • 2015-11-25
      • 2019-02-09
      • 1970-01-01
      • 1970-01-01
      • 2011-04-16
      • 1970-01-01
      相关资源
      最近更新 更多