Silence PyLint предупреждение о неиспользуемых переменных для интерполяции строк

say Модуль переносит строковую интерполяцию в Python, например так:

import say

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

Однако PyLint жалуется, что переменная 'a' никогда не используется. Это проблема, потому что мой код использует say.fmt широко. Как я могу заставить замолчать это предупреждение?

5 ответов

Решение

Да, вы можете отключить предупреждения Pylint.

Вот один из способов:

import say

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

Кроме того, вы можете создать файл конфигурации и добавить в него следующие строки:

[MESSAGES CONTROL]
disable=unused-argument

Ссылка:

Один из подходов к отключению этого сообщения - присвоить аргументу имя или префикс dummy или же _, как в:

import say

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

Смотрите здесь для получения дополнительной информации: /questions/47825421/kak-obrabotat-soobschenie-s-soobscheniem-idw0612-neispolzuemaya-peremennaya/47825438#47825438

Есть 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) или для всего проекта без потери проверок на неиспользованную переменную.

Я использую этот шаблон:

      def foo(a, b, c):
  _ = (a, b)  # unused: use these later
  return c + 1

Это менее многословно, чем отказ, мне не нужно путать имена аргументов ключевых слов, и у меня есть удобное напоминание, чтобы вернуться к использованию этих переменных позже.

Мы можем решить эту проблему, используя " " перед нашими аргументами ПРИМЕР-: def foo(a,b):выдавал проблему pylint, т.е. «a» (неиспользуемый аргумент) и «b» (неиспользуемый аргумент), поэтому я добавил « » перед своими аргументами, и он был решен, какdef foo(_a,_b):

Другие вопросы по тегам