我知道FAQ http://docs.pylint.org/faq.html#is-there-a-way-to-disable-a-message-for-a-particular-module-onlyPyLint 的条目指出:
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 中是否存在这两种功能?