在pylint中,如何局部禁用警告并随后撤销而不显式给出列表?
我知道关于PyLint的一个常见问题解答,其中提到:
4.2 有没有办法只对某个模块禁用某条消息?
可以的,你可以通过在文件顶部添加相应的注释选项,来在模块级别禁用或启用(全局禁用的)消息:
# pylint: disable=wildcard-import, method-hidden # pylint: enable=too-many-lines
不过,我想知道如何在本地暂时抑制一条消息,然后再简单地恢复到抑制之前的状态。我不想在恢复之前的状态时重复自己。有没有办法做到这一点?
PyLint处理这个问题似乎有个不足之处,就是如果我全局禁用了某条消息some-message
(比如通过命令行或pylintrc
文件),然后我有以下这段Python代码:
# pylint: disable=some-message
foo, bar, baz = 0, 1, 2
# ... the code that creates the warning
# pylint: enable=some-message
文档建议说,第一行不会有任何效果(也就是说,已经禁用的消息仍然会保持禁用状态),而最后一行不仅会撤销第一行的本地效果——无论它是无害的还是由于全局设置导致的——还会撤销命令行选项或pylintrc
的设置。
我想要的功能类似于MS Visual C++中的警告处理:
#pragma warning(push) /* save current state of warning settings */
#pragma warning(disable:somewarning)
/* warning occurs in code here */
#pragma warning(pop) /* restore previous state of warning settings */
还有一个更简洁的替代方案是:
#pragma warning(disable:somewarning)
/* warning occurs in code here */
#pragma warning(default:somewarning)
PyLint中有没有类似的功能呢?