wake-up-neo.com

PyLint-Warnung vor nicht verwendeten Variablen für die String-Interpolation ausschalten

Das say-Modul führt die Zeichenfolgeninterpolation in Python wie folgt ein:

import say

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

PyLint beschwert sich jedoch darüber, dass die Variable 'a' niemals verwendet wird. Dies ist ein Problem, da mein Code say.fmt ausführlich verwendet. Wie kann ich diese Warnung zum Schweigen bringen?

14
Elena

Ja, Sie können Pylint-Warnungen ausschalten.

Hier ist ein Weg:

import say

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

Alternativ können Sie eine Konfigurationsdatei erstellen und diese Zeilen hinzufügen:

[MESSAGES CONTROL]
disable=unused-argument

Referenz:

24
Robᵩ

Ein Ansatz zum Stummschalten dieser Nachricht besteht darin, das Argument mit dummy oder _ zu benennen oder voranzustellen, wie in

import say

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

Weitere Informationen finden Sie hier: https://stackoverflow.com/a/10107410/1080804

6
ecoe

Es gibt jetzt disable-possibly-unused-variable (seit pylint 2.0 wurde am 15.08.1880 veröffentlicht), das man in Dateien ignorieren könnte, die Ihr say-Modul importieren:

Neue möglicherweise-unused-variable Prüfung hinzugefügt.

Dies ist ähnlich wie bei einer unbenutzten Variable. Der einzige Unterschied besteht darin, dass sie ausgegeben wird, wenn ein locals () - Aufruf im Gültigkeitsbereich der unbenutzten Variablen erkannt wird. Der locals () - Aufruf könnte möglicherweise die genannte Variable verwenden, indem er alle Werte verbraucht, die bis zum Anrufpunkt vorhanden sind. Diese neue Prüfung ermöglicht das Deaktivieren dieses Fehlers, wenn der Benutzer Locals () absichtlich verwendet, um alles zu verbrauchen.

Beispielsweise löst der folgende Code jetzt diesen neuen Fehler aus:

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

Der Grund für diese Überprüfung schließt explizit Ihren Anwendungsfall ein , obwohl darauf hingewiesen wird, dass dies keine perfekte Lösung ist:

Es wäre großartig, eine separate Überprüfung auf nicht verwendete Variablen durchzuführen, wenn locals () im selben Bereich verwendet wird:

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

Der Vorteil davon ist, dass man die wahrscheinlich-unused-variable für eine Datei (die viele String-Formatierungen enthält oder das Konfigurationscode-Beispiel in # 641 enthält) oder das gesamte Projekt deaktivieren kann, ohne die Überprüfungen für nicht verwendete-Variablen zu verlieren.

0
mtd