Pylint:禁用不必要的"否则"在"返回" (没有其他回报)警告

时间:2017-07-27 00:49:47

标签: python pylint pylintrc

我正在查看我的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)

4 个答案:

答案 0 :(得分:12)

您应该将no-else-return添加到disable文件的.pylintrc设置中以逗号分隔的已停用选项列表中。

另见Pylint文档:
http://pylint.pycqa.org/en/latest/technical_reference/features.html#messages-control-options

答案 1 :(得分:3)

您正在寻找no-else-return (R1705)。只需将这些内容添加到.pylintrc

即可
[REFACTORING]
no-else-return=no

答案 2 :(得分:0)

在这种情况下,最好使用三元运算符。

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

答案 3 :(得分:0)

要让pylint开心,请像下面这样解决

    (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