36

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

import say

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

但是,PyLint 抱怨从未使用过变量“a”。这是一个问题,因为我的代码say.fmt广泛使用。我怎样才能使这个警告静音?

4

3 回答 3

54

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

这是一种方法:

import say

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

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

[MESSAGES CONTROL]
disable=unused-argument

参考:

于 2016-02-17T22:53:59.353 回答
22

使该消息静音的一种方法是使用dummyor命名或为参数添加前缀_,如:

import say

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

有关更多信息,请参见此处:https ://stackoverflow.com/a/10107410/1080804

于 2017-07-01T21:11:51.453 回答
7

现在有disable-possibly-unused-variable(因为pylint 2.0 于 2018-07-15 发布),在导入say模块的文件中可以忽略它:

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

这类似于未使用变量,唯一的区别是当我们在未使用变量的范围内检测到 locals() 调用时会发出它。locals() 调用可能会使用所述变量,方法是使用在调用点之前存在的所有值。当用户有意使用 locals() 来消耗所有内容时,此新检查允许禁用此错误。

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

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

此检查的基本原理明确包括您的用例,尽管注意到它不是一个完美的解决方案:

如果 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 中的配置代码示例)或整个项目禁用可能未使用的变量,而不会丢失对未使用变量的检查。

于 2018-08-02T13:08:40.080 回答