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 ответов
Решение
Ты ищешь 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