如何注释/文档化Pylint行内选项的使用?

8 投票
3 回答
2214 浏览
提问于 2025-04-19 06:08

禁用 Pylint 的检查或者绕过它的警告,应该有明确的理由。我希望能在禁用的地方写下这些理由,但到目前为止还没成功。

举个例子,假设有一个类,里面只有一个构造函数和一个方法。这种情况下,Pylint 会发出警告,并给出理由,但其实也有很多合理的理由可以在本地禁用这个警告。

class Foo(object):  # pylint: disable=R0903 --- Closure object

    def __init__(self, data):
        …

    def single_method(argument):
       …

在上面的例子中,Pylint 不仅会警告“公共方法太少”,还会额外抱怨“错误的选项值 'R0903 --- 闭包对象'”。

这个问题的背景比这个单一的例子要广泛得多(也许我还不知道在 Python 中实现闭包的更好方法),我希望能在这些内联指令旁边写下大部分的注释,以便更清晰、更简单。顺便提一下,提醒一下选项的用途也是有帮助的。比如,提醒 # pylint: disable=R0903 --- 公共方法太少(为了保持在同一个例子中)。

简单来说:有没有办法在 Pylint 的内联指令中添加注释?

3 个回答

0

Pylint 不支持注释指令。不过,从 0.25.3 版本开始,你可以使用一些符号名称,具体可以参考这个链接:http://docs.pylint.org/faq.html#do-i-have-to-remember-all-these-numbers。如果你需要或者想要添加注释,就得用第二行(我通常会把注释放在 Pylint 指令的上面)。

2

这个对我有效:

class Foo(object):  # (Closure object) pylint: disable=R0903

def __init__(self, data):
    …

def single_method(argument):
   …

我的pylint版本是

(doisub)> $ pylint --version                                              
pylint 1.5.4,
astroid 1.4.4
Python 2.7.11 (default, Dec 22 2015, 11:45:03)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-16)]
9

从pylint 1.5.0版本开始,你可以使用 # pylint: disable=no-member; 这里可以写任何文字 这样的方式。

撰写回答