我用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. 如何 suppress 警告(注意#pylint条注释)?或
  2. 我如何告诉pylint这只是一个接口(注意dummy_gamedummy_player)

编辑:

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]

推荐答案

你现在忽略了这一点

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):
    ...
    ...

Python-3.x相关问答推荐

为什么我的Selenium脚本在密码元素上失败?

torch.stack([t1, t1, t1], dim=1)与torch.hstack([t1, t1, t1])之间有什么区别?

「Python Pandas」多级索引列和行匹配,如果列和行名称相似,则排除这些单元格中的值添加

pip install saxonche v 12.1.0 产生 FileNotFoundError

隐藏Cartopy中高纬度非矩形投影的右侧轴(纬度)标签

我正在使用 python 线程,当查询 mysql 时,代码似乎在运行并保持在无限循环中,没有返回任何错误

matplotlib.pyplot 多边形,具有相同的纵横比和紧凑的布局

Python pandas将单元格值移动到同一行中的另一个单元格

非拉丁字符的Python正则表达式不起作用

如何在python中将列表转换为其他格式

Tkinter IntVar 返回 PY_VAR0 而不是值

Python - 如何从同一台客户端机器运行多个Flask应用程序

PyQt:退出时没有错误消息(回溯)

Selenium (Python) - 使用 Chrome 网络驱动程序等待下载过程完成

BeautifulSoup 的 Python 3 兼容性

创建集合的 Python 性能比较 - set() 与 {} 文字

类型提示返回 NameError: name 'datetime' not defined

如何在python中创建代码对象?

pdfminer python 3.5

Django Rest 框架 ListField 和 DictField