【问题标题】:pylint disabling a single line of code just produces another pylint errorpylint 禁用一行代码只会产生另一个 pylint 错误
【发布时间】:2020-05-06 03:36:07
【问题描述】:

第 4.1 节中的文档明确指出:

https://pylint.readthedocs.io/en/latest/faq.html#message-control

4.1 是否可以在本地禁用特定消息?

是的,此功能已在 Pylint 0.11 中添加。这可以通过在所需的块级别或所需代码行的末尾添加“#pylint: disable=some-message,another-one”来完成


太棒了!但它不起作用。嘘。

我收到以下代码行的以下 pylint 错误

W: 26, 2: Redefining built-in 'zip' (redefined-builtin)

 

try:
  from itertools import izip as zip  # pylint: disable=bad-builtin
except ImportError:
  pass

但是 pylint 只是更大声地抱怨我试图让它闭嘴:

E: 26, 0: Bad option value 'bad-builtin' (bad-option-value)

我也尝试了错误代码# pylint: disable=W0141,它也会产生类似的错误。

知道我做错了什么吗?

【问题讨论】:

  • 奇怪,我运行相同的代码并没有出错......
  • 这很奇怪。也许是从一个版本到另一个版本的变化?

标签: python pylint


【解决方案1】:

我也遇到过类似情况。

无法解决的pylint问题

class A:
    pass

pylint上面的代码有很多警告,但我想谈谈old-style-class。 在 Python 2.7 中,您将收到 old-style-class 错误。 当然,您可以像这样更改代码:

class A(object):
    pass

但是,您将在 Python 3 中收到 useless-object-inheritance 警告。

如果你正在编写与 python 2.7 和 3 兼容的包并使用pylint,那么你就失败了。

不可避免的错误选项值

是的,如果接受在评论中禁用old-style-classuseless-object-inheritance 中的任何一个,您可以更进一步。

在 Python 2.7 中:

# pylint: disable=old-style-class
class A:
    pass

在 Python 3 中:

# pylint: disable=useless-object-inheritance
class A(object):
    pass

最终,你会得到一个bad-option-value,和这个问题一样。

禁用错误选项值

我试过了,但是在这种情况下,bad-option-value 不能在本地禁用。 我必须在pylint 配置文件中禁用bad-option-value,例如.pylintrc

[TYPECHECK]
disable=bad-option-value

注意:我的pylint版本在python 2.7中是1.9.4,在python 3中是2.2.2。

【讨论】:

    【解决方案2】:

    啊,简单的回答,应该是# pylint: disable=bad-option-value,在括号内的错误信息中显示:

    E: 26, 0: Bad option value 'bad-builtin' (bad-option-value)
    

    【讨论】:

      【解决方案3】:

      当您收到此消息时:

      W: 26, 2: Redefining built-in 'zip' (redefined-builtin)
      

      您必须禁用您收到的确切错误消息(括号中的那个):

      try:
        from itertools import izip as zip  # pylint: disable=redefined-builtin
      except ImportError:
        pass
      

      这似乎在 pylint 2.5 中运行良好。

      如果您使用多个版本的 python 或不同的 venvs 和相同的代码库进行测试并且您得到不同的错误,这可能会很烦人。确保在所有构建/测试中将版本修复为一个版本。听起来这可能发生在这里(不确定你从哪里得到bad-builtin)。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-11-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-01-01
        相关资源
        最近更新 更多