2016-02-17 10 views
8

say модуль приносит интерполяцию строки в Python, например:Silence PyLint предупреждение о неиспользуемых переменных для интерполяции строк

import say 

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

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

+0

ли https: // документы. pylint.org/faq.html#is-it-possible-to-locally-disable-a-particular-message help? –

+0

Если вы действительно хотите это сделать, создайте локальный файл '.pylintrc', который подавляет это предупреждение. –

+0

Говорит ли использование 'locals()' для получения аргументов? Это кажется странным. –

ответ

13

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

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

import say 

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

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

[MESSAGES CONTROL] 
disable=unused-argument 

Ссылка:

+1

Самое смешное, что ваше предложение также нарушает правило lint :) #pylint ... -> Комментарий к блоку E265 должен начинаться с '#' – kupsef

2

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

import say 

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

Смотрите здесь для получения дополнительной информации: https://stackoverflow.com/a/10107410/1080804

+2

Недостаток этого метода заключается в том, что он меняет сигнатуру функции, поскольку в Python всегда можно вызвать: 'f (_a = 1)'. –