我试图在Pylint 0.21.1中禁用警告C0321(“单行中有多个语句”——我经常将具有短单行结果的if语句放在同一行上)(如果有问题:astng 0.20.1, common 0.50.3,和Python 2.6.6 (r266:84292, 2010年9月15日,16:22:56))。
我尝试在Pylint配置文件中添加disable=C0321,但Pylint坚持报告它。这一行的变体(如disable=0321或disable=C321)被标记为错误,因此Pylint能够正确地识别该选项。它只是忽略它。
这是一个Pylint错误,还是我做错了什么?有办法解决这个问题吗?
我真的很想摆脱这些噪音。
对不起,我偏离了最初的问题,关于海报的一般偏好,这将更好地解决一个全局配置文件。
但是,正如在许多流行的答案中一样,我倾向于在我的代码中看到什么可以触发警告,并最终通知贡献者。
我回复@imolit的评论需要保持简短,以下是一些细节。
对于多语句消息,最好在块或模块级别禁用它,就像这样
# pylint: disable=multiple-statements
我的用例现在是unittest setup()中的attribute-defined-outside-init,我选择了行范围消息禁用,使用消息代码来避免行太长问题。
class ParserTest(unittest.TestCase):
def setUp(self):
self.parser = create_parser() # pylint: disable=W0201
可以在本地使用类似的命令找到对应关系
$ pylint --list-msgs | grep 'outside-init'
:attribute-defined-outside-init (W0201): *Attribute %r defined outside __init__*
当然,您也可以类似地从代码中检索符号名称。
Pylint——generate-rcfile是这样显示的:
[MESSAGES CONTROL]
# Enable the message, report, category or checker with the given id(s). You can
# either give multiple identifier separated by comma (,) or put this option
# multiple time.
#enable=
# Disable the message, report, category or checker with the given id(s). You
# can either give multiple identifier separated by comma (,) or put this option
# multiple time (only on the command line, not in the configuration file where
# it should appear only once).
#disable=
看起来就像~/。pylintrc在section [MESSAGES CONTROL]中应该有disable= line/s。