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

时间:2017-12-14 01:33:32

标签: 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)

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,这也会产生类似的错误。

知道我做错了吗?

3 个答案:

答案 0 :(得分:2)

我也遇到过类似情况。

无法解决的皮林问题

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。 我必须在bad-option-value配置文件(如pylint)中禁用.pylintrc

[TYPECHECK]
disable=bad-option-value

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

答案 1 :(得分:0)

啊,简单的回答,它应该是# pylint: disable=bad-option-value,它出现在括号中的错误消息中:

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

答案 2 :(得分:0)

收到此消息时:

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)。