如何禁用pylint no-self-use warning?

时间:2015-01-15 14:12:03

标签: python python-3.x pylint

我在Python3中进行编码并使用pylint来保持代码清洁。

我想定义类似接口类的东西,所以我可以用干净简洁的方式添加更多功能,但是,pylint会妨碍这个目标。

这是一个示例方法:

def on_enter(self, dummy_game, dummy_player): #pylint disable=no-self-use
    """Defines effects when entering area."""
    return None

此处的pylint输出:

R: 70, 4: Method could be a function (no-self-use)

问题是:

  1. 如何禁止警告(请注意#pylint评论)?或
  2. 如何告诉pylint这只是一个界面(注意dummy_gamedummy_player
  3. 编辑: 输出pylint --version

    pylint 1.2.1, 
    astroid 1.1.1, common 0.61.0
    Python 2.7.8 (default, Oct 20 2014, 15:05:19) 
    [GCC 4.9.1]
    

2 个答案:

答案 0 :(得分:15)

原来我缺少冒号:

我用过 pylint disable=no-self-use
什么时候应该是 pylint: disable=no-self-use

好吧,从现在开始,至少我将永远拥有最新的(以及为python3构建的)pylint:)

答案 1 :(得分:13)

您目前忽略此为

def on_enter(self, dummy_game, dummy_player): #pylint disable=no-self-use
    ...

取而代之的是

# pylint: disable=R0201
def on_enter(self, dummy_game, dummy_player): 
    ...

在您的文件中添加评论,如下所示

# pylint: disable=R0201

您可以在documentation here上找到每个警告/错误的短代码助记符:

  

no-self-use (R0201)

     

方法可以是函数当方法不使用其绑定实例时使用,因此可以写为函数。

如果整个文件只包含该界面的代码,您可以将其放在顶部:

# pylint: disable=R0201
class SomeInterface(object):
    ...
    ...

如果您还有其他代码,并且只想为接口类禁用此功能,则可以再次启用检查,如

# pylint: disable=R0201
class SomeInterface(object):
    ...
    ...

# pylint: enable=R0201

class AnotherClass(object):
    ...
    ...