Ele*_*ena 17 python pylint unused-variables
该say模块为Python带来字符串插值,如下所示:
import say
def f(a):
return say.fmt("The value of 'a' is {a}")
Run Code Online (Sandbox Code Playgroud)
但是,PyLint抱怨变量'a'从未使用过.这是一个问题,因为我的代码say.fmt广泛使用.我该如何沉默这个警告?
Rob*_*obᵩ 30
是的,你可以使pylint警告静音.
这是一种方式:
import say
def f(a):
#pylint: disable=unused-argument
return say.fmt("The value of 'a' is {a}")
Run Code Online (Sandbox Code Playgroud)
或者,您可以创建配置文件并将以下行添加到其中:
[MESSAGES CONTROL]
disable=unused-argument
Run Code Online (Sandbox Code Playgroud)
参考:
使该消息静默的一种方法是使用dummyor 命名或加上参数的前缀_,如下所示:
import say
def f(_a):
return say.fmt("The value of 'a' is {_a}")
Run Code Online (Sandbox Code Playgroud)
有关详细信息,请参阅此处:https://stackoverflow.com/a/10107410/1080804
有disable-possibly-unused-variable现在(因为pylint的2.0发布于2018年7月15日),其中一个可以在文件中导入您忽略say模块:
添加了新的可能未使用的变量检查。
这类似于未使用的变量,唯一的区别是当我们在未使用的变量范围内检测到 locals() 调用时会发出它。locals() 调用可能会使用上述变量,方法是使用调用之前出现的所有值。当用户有意使用 locals() 来消费所有内容时,这项新检查允许禁用此错误。
例如,以下代码现在将触发这个新错误:
Run Code Online (Sandbox Code Playgroud)def func(): some_value = some_call() return locals()
此检查的基本原理明确包括您的用例,但请注意这不是一个完美的解决方案:
如果在同一范围内使用 locals() ,最好对未使用的变量进行单独检查:
Run Code Online (Sandbox Code Playgroud)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 中的配置代码示例)或整个项目,而不会丢失对未使用变量的检查。
我使用这个模式:
def foo(a, b, c):
_ = (a, b) # unused: use these later
return c + 1
Run Code Online (Sandbox Code Playgroud)
它比弃权更简洁,我不需要修改关键字参数名称,而且我有一个方便的提醒,可以稍后再继续使用这些变量。