12

我正在查看我的 RC 文件,但我一生都无法找到这些变量中的哪一个禁用了该功能。

我搜索了“if”、“else”和“return”,但什么也没看到。除非我错过了。

谢谢。

更多信息

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

4 回答 4

19

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

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

于 2017-07-29T00:33:24.840 回答
4

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

[REFACTORING]
no-else-return=no
于 2017-07-27T01:04:58.823 回答
3

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

def is_positive(number):
    return "+++" if number > 0 else "---"
于 2019-07-22T14:46:13.200 回答
-2

为了让 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
于 2020-03-16T04:36:32.653 回答