Silence PyLint警告字符串插值的未使用变量

时间:2016-02-17 22:43:32

标签: python pylint unused-variables

say模块为Python带来字符串插值,如下所示:

import say

def f(a):
    return say.fmt("The value of 'a' is {a}")

然而,PyLint抱怨变量'a'从未使用过。这是一个问题,因为我的代码广泛使用say.fmt。我该如何沉默这个警告?

3 个答案:

答案 0 :(得分:25)

是的,您可以将pylint警告静音。

这是一种方式:

import say

def f(a):
    #pylint: disable=unused-argument
    return say.fmt("The value of 'a' is {a}")

或者,您可以创建配置文件并将这些行添加到其中:

[MESSAGES CONTROL]
disable=unused-argument

参考:

答案 1 :(得分:6)

对该消息进行静默的一种方法是使用dummy_为参数命名或加前缀,如:

import say

def f(_a):
    return say.fmt("The value of 'a' is {_a}")

有关详细信息,请参阅此处:https://stackoverflow.com/a/10107410/1080804

答案 2 :(得分:0)

现在有disable-possibly-unused-variable(自pylint 2.0 was released on 2018-07-15起),在导入您的say模块的文件中可以忽略它:

  

添加了新的可能未使用的变量检查。

     

这类似于未使用变量,唯一的区别是,当我们在未使用变量的范围内检测到locals()调用时会发出该变量。通过使用直到调用点为止的所有值,locals()调用可以潜在地使用所述变量。当用户有意使用locals()消耗所有东西时,这项新检查可以禁用此错误。

     

例如,以下代码现在将触发此新错误:

def func():
    some_value = some_call()
    return locals()

此支票explicitly includes your use case的理由,尽管已指出这不是一个完美的解决方案:

  

如果在同一范围内使用locals(),则最好对未使用的变量进行单独检查:

def example_no_locals():
  value = 42  # pylint: disable=unused-variable

def exmaple_defined_before():
  value = 42  # pylint: disable=possibly-unused-variable
  print(locals())

def exmaple_defined_after():
  print(locals())
  value = 42  # pylint: disable=unused-variable
     

这样做的好处是,可以禁用文件(其中包含很多字符串格式,或者#641中的配置代码示例)或整个项目的可能未使用的变量,而无需对未使用的变量进行检查-变量。