如何注释/文档化Pylint行内选项的使用?
禁用 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; 这里可以写任何文字
这样的方式。