我有一个文件foo.py,可以广泛使用Faker第三方模块。这样,pylint会生成许多“无成员”错误。
我想在foo.py中禁用它们。因此,在顶部,我尝试插入:
# pragma pylint: disable=no-member
Run Code Online (Sandbox Code Playgroud)
但是,以相当烦人的方式,每次遇到这些错误之一时,pylint都会发出一条被抑制的消息,这完全打败了我的编译指示?
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)
Run Code Online (Sandbox Code Playgroud)
嗯...那太荒谬了。
所以我试图...抑制抑制消息?
# pragma pylint: disable=no-member,suppressed-message
Run Code Online (Sandbox Code Playgroud)
然后变得更好...
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)
Run Code Online (Sandbox Code Playgroud)
因此,我想我的问题是-如何使抑制消息完全基于每个文件消失,而不会插入一些烦人的替换消息?
编辑:谢谢你的评论。
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)]
Run Code Online (Sandbox Code Playgroud)
默认情况下,I 类消息处于禁用状态。enable=all您通过在 pylintrc 的部分中设置来自行打开它们[MESSAGES CONTROL],然后您没有disable在同一部分的列表中禁用它们。添加suppressed-message到disablepylintrc 中的列表中,抑制消息消息应该停止出现。
至于无用的抑制消息,这似乎是一个 pylint bug。