python – Pylint:如何在没有后续“压制消息”废话的情况下干净地压制事物?

我有一个文件foo.py,广泛使用Faker第三方模块.因此,pylint会产生很多“无成员”错误.

我想在foo.py中禁用它们.所以在顶部,我试过了
插入:

# pragma pylint: disable=no-member

但是,以一种非常烦人的方式,pylint现在每次遇到其中一个错误时都会发出一条被抑制的消息 – 完全打败了我的pragma的目的?

foo.py:1:0: I0011: Locally disabling no-member (E1101) (locally-disabled)
... other misc stuff ...
foo.py:177:0: I0020: Suppressed 'no-member' (from line 1) (suppressed-message)
foo.py:83:0: I0020: Suppressed 'no-member' (from line 1) (suppressed-message)
foo.py:85:0: I0020: Suppressed 'no-member' (from line 1) (suppressed-message)

嗯……好吧……太荒谬了.

所以我试着……压制抑制消息?

# pragma pylint: disable=no-member,suppressed-message

然后它变得更好……

foo.py:1:0: I0011: Locally disabling no-member (E1101) (locally-disabled)
foo.py:1:0: I0011: Locally disabling suppressed-message (I0020) (locally-disabled)
foo.py:1:0: C0102: Black listed name "foo" (blacklisted-name)
.... misc stuff, actual things I should clean up here ...
foo.py:1:0: I0021: Useless suppression of 'suppressed-message' (useless-suppression)

所以我想我的问题是 – 如何在每个文件的基础上完全消除抑制消息,而不会丢弃一些烦人的替换消息?

编辑:谢谢你的评论.

输出pylint –version:

pylint 2.1.1
astroid 2.0.4
Python 3.6.5 (default, Apr 25 2018, 14:23:58) 
[GCC 4.2.1 Compatible Apple LLVM 9.1.0 (clang-902.0.39.1)]

最佳答案 默认情况下禁用I类消息.你通过在pylintrc的[MESSAGES CONTROL]部分设置enable = all来自己打开它们,然后你没有在同一部分的禁用列表中禁用它们.将suppress-message添加到pylintrc中的禁用列表中,抑制消息消息应该停止显示.

至于无用抑制消息,这似乎是一个pylint错误.

点赞