Pylint: отключить ненужное "else" после предупреждения "return" (no-else-return)

Я просматриваю свой RC-файл и не могу на всю жизнь найти, какая из этих переменных отключает эту функцию.

Я искал "если", "еще" и "возврат", и я ничего не видел. Если только я не пропустил это.

Благодарю.

Больше информации

pylint 1.7.2,
astroid 1.5.3
Python 2.7.10 (default, Jul 30 2016, 18:31:42)
[GCC 4.2.1 Compatible Apple LLVM 8.0.0 (clang-800.0.34)]

Что я кладу в терминал

pylint --rcfile=.pylintrc Test.py

Тестовый код

""" Module Docstring """

def IS_POSITIVE(number):
    """ detects positive """
    if number > 0:
        return "+++"
    else:
        return "---"


print IS_POSITIVE(3)

Распечатка

************* Module Test
R: 27, 4: Unnecessary "else" after "return" (no-else-return)

------------------------------------------------------------------
Your code has been rated at 8.00/10 (previous run: 8.00/10, +0.00)

5 ответов

Решение

Ты должен сделать disable=no-else-return в вашем файле RC.

Ты ищешь no-else-return (R1705), Просто добавьте это к вашему .pylintrc:

[REFACTORING]
no-else-return=no

В этом конкретном случае вам может быть лучше использовать тернарный оператор.

def is_positive(number):
    return "+++" if number > 0 else "---"

я бы не отключал. Вместо этого OP может изменить код на

      def IS_POSITIVE(number):
    """ detects positive """
    if number > 0:
        return "+++"
    return "---"

Аналогичная проблема была решена в других вопросах, таких как

Чтобы осчастливить Пилинта, решите, как показано ниже

    (1)
    jobdone = False
    if (not fdb) and (source.lower() in space.SOURCE):
        _ = space.SOURCE[source.lower()]
        _().dojob()
        jobdone = True
    elif fdb and (source.lower() in space.SOURCE):
        _ = space.SOURCE[source.lower()]
        _().dojob()
        jobdone = True

    if jobdone:
        break
    (2)
    retval = None
    if (not fdb) and (source.lower() in space.SOURCE):
        _ = space.SOURCE[source.lower()]
        retval = _().getter()
        jobdone = True
    elif fdb and (source.lower() in space.SOURCE):
        _ = space.SOURCE[source.lower()]
        retval = _().getter()
        jobdone = True

    if jobdone:
        return retval
Другие вопросы по тегам