Должен ли я всегда доверять предупреждениям Pylint W0613 в Django, особенно для функций, которые имеют ** kwargs в качестве параметров? - PullRequest
1 голос
/ 10 апреля 2019

Используя Pylint для кода Django, я часто получаю предупреждение W0613. 90% случаев имеют значение, когда переменная объявлена ​​и не используется. Но иногда я думаю, что это не так.

W0613: Unused argument 'kwargs' (unused-argument)

Пример, который вызывает предупреждение, представление, которое обрабатывает ошибку 500:

def error_500(request, *args, **kwargs):
    '''
    A 500 error handling view
    '''
    data = {}
    return render(request, '500.html', data)

В приведенном выше случае, если мы удаляем ** kwargs, начиная с Django 2 (насколько я помню), любая ситуация с 500 ошибками приводит к необработанному исключению, которое превращается в сбой.

Так что я смущен, если Пилинт действительно понимает все ситуации, которые могут возникнуть или нет.

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

Я заметил, что при использовании специального Pylint для Django этот тип предупреждения обычно появляется не так часто (pylint-django).

Но иногда это все же происходит.

1 Ответ

2 голосов
/ 10 апреля 2019

Это реальное предупреждение - вы не используете аргумент.Кроме того, вы не можете удалить его - вы реализуете интерфейс, который ожидает, что аргумент будет там (хотя вы не используете его, кто-то другой может).

К счастью, Pylint ожидает этого и имеет настройкудля игнорируемых аргументов ...

ignored-arguments-names = arg | args | kwargs

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

...