Предупреждение Silence PyLint о неиспользуемых переменных для строковой интерполяции
Модуль say
выводит интерполяцию строк на Python, например:
import say
def f(a):
return say.fmt("The value of 'a' is {a}")
Однако PyLint жалуется, что переменная 'a' никогда не используется. Это проблема, потому что мой код широко использует say.fmt
. Как я могу заставить замолчать это предупреждение?
Ответы
Ответ 1
Да, вы можете отключить предупреждения pylint.
Вот один из способов:
import say
def f(a):
#pylint: disable=unused-argument
return say.fmt("The value of 'a' is {a}")
Кроме того, вы можете создать файл конфигурации и добавить к нему следующие строки:
[MESSAGES CONTROL]
disable=unused-argument
Справка:
Ответ 2
Один из способов заставить замолчать это сообщение - назвать или префикс аргумента dummy
или _
, как в:
import say
def f(_a):
return say.fmt("The value of 'a' is {_a}")
См. Здесь для получения дополнительной информации: fooobar.com/questions/402339/...
Ответ 3
Теперь есть опция disable-possible 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) или весь проект, также не теряя проверки на неиспользуемую переменную.