我正在使用pylint 0.27和python 2.7.3。 Pylint有一个已知错误,它在分析具有.next()
调用的代码时会遇到错误。正如http://www.logilab.org/122793链接中给出的那样,它在给定的回溯中失败。
我无法更改我的python和pylint版本,但我想通过添加.next()
来禁用#pylint: MAGIC
调用的代码段上的pylint来解决此问题在我的代码中发表评论。
我可以找到支持使用#pylint: skip-file
禁用文件上的pylint检查,但我有兴趣在功能级别或更确切地说是在行级别。
欢迎任何其他变通办法!
答案 0 :(得分:4)
您可以通过将pylint注释添加为函数体的第一行来完成此操作,如下所示:
def wont_raise_pylint():
# pylint: disable=W0212
some_module._protected_member()
some_module._protected_member()
def will_still_raise_pylint():
some_module._protected_member()
答案 1 :(得分:1)
不幸的是,您无法在本地避免遇到的错误。
可以期望在源代码中找到有问题的代码片段,然后在本地禁用所涉及的消息,但这不会起作用,因为它仍将运行。这是因为当本地禁用消息时,运行检测此消息的代码,最后只发送消息。
但是,如果您全局禁用此消息(取决于其实施方式),可能有效。在你的情况下,似乎不幸的是你必须跳过整个'伐木'检查器。
总而言之,为避免追溯,您可以:
在本地使用pylint: skip-file
,在这种情况下,每个pylint的功能都会被激活,但会跳过整个违规文件
全局禁用'记录'检查器(--disable=logging
),在这种情况下,将检查整个代码(包括违规文件)但没有'记录'检查消息
答案 2 :(得分:1)
重构代码时,我包裹了我尚未触摸的部分
在class ToDo
中,并使用指令开始该类
忽略所有消息。在课程结束时,指令
超出范围。 MWE:
def unused_variable(foo=''):
"generate W0613"
class ToDo:
#pylint: disable = E, W, R, C
#disables W0613 and E0213
def unused_variable(foo=''):
"generate W0613 and E0213"
def main(foo=''):
"generate W0613"