Какова реальная выгода подчинения R1705 в Пилинте? Код действительно безопаснее? - PullRequest
4 голосов
/ 07 апреля 2019

С Pylint я знаю, что предупреждение R1705 срабатывает, когда вы помещаете 'return' внутри 'else'.

Это предупреждение: R1705: Unnecessary "else" after "return" (no-else-return)

Вот что говорят об этом документы:

Unnecessary “else” after “return” Used in order to highlight an unnecessary block of code following an if containing a return statement. As such, it will warn when it encounters an else following a chain of ifs, all of them containing a return statement.

Фрагмент кода, который вызовет R1705:

if CONDITION1:
   return something1
else:
   return something2

Требуемое исправление для отключения предупреждения:

if CONDITION1:
   return something1
return something2

Неужели нужно это повиноваться? В чем выгода? Я имею в виду, что я понимаю, что после возврата чего-либо из функции невозможно вернуться и прочитать код.

Но я нахожу более организованным использование «else».

1 Ответ

3 голосов
/ 07 апреля 2019

Если вы пытаетесь соответствовать Mozilla Coding Style или аналогичному, тогда R1705 имеет смысл.Цитата:

Не ставьте другое сразу после возврата (или перерыва).Удалите остальное, это не нужно и увеличивает уровень отступа.

В противном случае вы можете отключить это предупреждение.Более того, рассмотрите возможность переключения на flake8, что, как правило, ведет к молчанию, если вы пишете разумный код.

За пределами сообщества Mozilla большинство людей предпочитают видеть простую параллельфункциональные предложения обрабатываются с помощью else, например:

def max(a, b):
    if a > b:
        return a
    else:
        return b
...