web-dev-qa-db-ja.com

Pylint:「return」(no-else-return)警告の後に不要な「else」を無効にする

私は自分の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)
10
Biclops

no-else-returnファイルのdisable設定の無効なオプションのコンマ区切りリストに.pylintrcを追加する必要があります。

Pylintのドキュメントも参照してください。
http://pylint.pycqa.org/en/latest/technical_reference/features.html#messages-control-options

15
PCManticore

あなたは no-else-return (R1705) を探しています。これらを.pylintrcに追加するだけです。

[REFACTORING]
no-else-return=no
4
Tamas Hegedus

この特定のケースでは、三項演算子を使用したほうがよい場合があります。

def is_positive(number):
    return "+++" if number > 0 else "---"
2
Mateo de Mayo

ピリントを幸せにするために、以下のように解決してください

    (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
0
linesofcode