如何处理pylint消息:ID:W0612未使用的变量

Jac*_*xel 22 python coding-style pylint

我正在使用pylint将一些代码更新为PEP 8标准.部分代码抛出了W0612未使用的变量错误,但这是因为它使用了一个返回(x,y)的模块,例如在这种特殊情况下只需要x时,就是这样做了.

(var_1, var_2) = func()

def func():
    a="a"
    b="b"
    return (a,b)
Run Code Online (Sandbox Code Playgroud)

然后返回var_1但从未使用var_2,因此会抛出错误.我该怎么处理?我在想这个

var = func()[0]
Run Code Online (Sandbox Code Playgroud)

处理它的最佳方法是什么?

Raf*_*ird 35

我相信这a, dummy = func()就是诀窍.Pylint允许(如果我没记错的话)以_or 开头的未使用的变量名称dummy,例如dummy_index.

您可以通过将--dummy-variables-rgx选项传递给Pylint 来配置它.这指定了捕获虚拟变量名称的正则表达式.

注意:使用_确实会引起混淆(道具:Sven Marnach).有一个约定使用单下划线作为半私有标识符的前缀,双下划线当然是特殊Python方法的前缀,除此之外,还有一个别名gettext()函数的约定,就像_()需要本地化的程序一样_("text to translate").

  • 如果您不喜欢这些约定,我认为您可以使用pylintrc文件添加其他备选方案.您还可以通过添加诸如"#pylint:disable = X0123"之类的注释来禁用各行上的pylint警告(请参阅[官方文档](http://www.logilab.org/card/pylint_manual)). (4认同)
  • 我建议使用`dummy`而不仅仅是`_`作为变量名.后者通常会造成不必要的混淆. (3认同)
  • 是的,完美的`unused_index`不起作用,`_unused_index`和`_index`虽然有效.谢谢你的帮助. (2认同)