web-dev-qa-db-ja.com

pylintの自己使用禁止警告を無効にする方法は?

私はPython3でコーディングしており、コードをクリーンに保つためにpylintを使用しています。

インターフェイスクラスのようなものを定義したいので、クリーンで簡潔な方法で機能を追加できますが、pylintはこの目標の邪魔になります。

サンプルメソッドは次のとおりです。

def on_enter(self, dummy_game, dummy_player): #pylint disable=no-self-use
    """Defines effects when entering area."""
    return None

Pylintの出力は次のとおりです。

R: 70, 4: Method could be a function (no-self-use)

質問は:

  1. 警告を抑制するにはどうすればよいですか(#pylintコメントに注意してください)?または
  2. これが単なるインターフェースであることをpylintに伝えるにはどうすればよいですか(dummy_gamedummy_playerに注意してください)

編集:pylint --versionの出力:

pylint 1.2.1, 
astroid 1.1.1, common 0.61.0
Python 2.7.8 (default, Oct 20 2014, 15:05:19) 
[GCC 4.9.1]
14
julka

あなたは現在これを無視しています

_def on_enter(self, dummy_game, dummy_player): #pylint disable=no-self-use
    ...
_

代わりに

_# pylint: disable=R0201
def on_enter(self, dummy_game, dummy_player): 
    ...
_

以下のようにファイルにコメントを追加します

_# pylint: disable=R0201
_

警告/エラーごとにショートコードのニーモニックを見つけることができます ドキュメントはこちら

no-self-use (R0201)

メソッドは関数である可能性がありますメソッドがバインドされたインスタンスを使用しない場合に使用されるため、関数として記述できます。

ファイル全体にインターフェースのコードのみが含まれている場合は、これを一番上に置くことができます。

_# pylint: disable=R0201
class SomeInterface(object):
    ...
    ...
_

他のコードもあり、インターフェイスクラスに対してのみこれを無効にしたい場合は、次のようにチェックを再度有効にすることができます。

_# pylint: disable=R0201
class SomeInterface(object):
    ...
    ...

# pylint: enable=R0201

class AnotherClass(object):
    ...
    ...
_
16
mu 無

私は結腸が不足していたことが判明しました:

使った
pylint disable=no-self-use
あるべきだったとき
pylint: disable=no-self-use

まあ、少なくとも私はこれから常に最新の(そしてpython3用に構築された)pylintを持っています:)

20
julka