pylint 禁用一行代码只会产生另一个 pylint 错误

Dav*_*rks 4 python pylint

第 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)
Run Code Online (Sandbox Code Playgroud)

 

try:
  from itertools import izip as zip  # pylint: disable=bad-builtin
except ImportError:
  pass
Run Code Online (Sandbox Code Playgroud)

但是 pylint 更大声地抱怨我试图关闭它:

E: 26, 0: Bad option value 'bad-builtin' (bad-option-value)
Run Code Online (Sandbox Code Playgroud)

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

知道我做错了什么吗?

Yan*_*ong 5

我也遇到过类似的情况。

无法解决的pylint问题

class A:
    pass
Run Code Online (Sandbox Code Playgroud)

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

class A(object):
    pass
Run Code Online (Sandbox Code Playgroud)

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

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

不可避免的坏期权价值

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

在 Python 2.7 中:

# pylint: disable=old-style-class
class A:
    pass
Run Code Online (Sandbox Code Playgroud)

在 Python 3 中:

# pylint: disable=useless-object-inheritance
class A(object):
    pass
Run Code Online (Sandbox Code Playgroud)

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

禁用 bad-option-value

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

[TYPECHECK]
disable=bad-option-value
Run Code Online (Sandbox Code Playgroud)

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