我是否应该一直信任Django中的W0613 pylint警告,尤其是对于以** kwargs作为参数的函数?

时间:2019-04-10 17:00:02

标签: django python-3.6 pylint

在Django代码上使用Pylint,我经常收到W0613警告。在声明变量并且不使用变量的情况下,有90%的情况与案例相关。但是有时候我认为不是。

W0613: Unused argument 'kwargs' (unused-argument)

触发警告的示例,一个处理500错误的视图:

def error_500(request, *args, **kwargs):
    '''
    A 500 error handling view
    '''
    data = {}
    return render(request, '500.html', data)

在上述情况下,如果我们从Django 2(我记得)删除** kwargs,那么任何500错误的情况都会导致未处理的异常,从而导致崩溃。

所以我很困惑Pylint是否真的了解所有可能出现的情况。

我应该始终将警告视为真正的警告,因为我的代码缺少某些内容,还是应该知道这些特殊情况并使警告静音?

我注意到,通过为Django使用特殊的Pylint,这种警告通常不会经常出现(pylint-django)。

但是它有时仍然会发生。

1 个答案:

答案 0 :(得分:2)

这是一个真实的警告-您不要使用该参数。另外,您无法将其删除-您正在实现一个接口,希望该参数存在(尽管您不使用它,但可能有人使用)。

幸运的是,pylint期望如此,并为忽略的参数设置了...

ignored-argument-names = arg | args | kwargs

这些名称是用于实现接口的名称,但是您实际上可能不需要,因此忽略特定警告是有道理的。