質問

Pylintが次の場合をうまく処理していないことに気付きました。

@property
def foo(self):
   return self._bar.foo

@foo.setter
def foo(self, foo_val):
   self._bar.foo = foo_val

Python2.6以来、それは完全に有効なケース構文ですが

Fooを2回定義したと書かれており、「.setter」構文(E1101&E0102を与える)を理解していません。

コードを変更せずにその回避策はありますか?エラーは他の場所にとって重要であるため、エラーを無効にしたくありません。

それをよりよく処理することができる他のツールはありますか?私はすでにpyfleakesをチェックしていますが、同じように動作します。 Pydevのコード分析はこの特定のケースをより適切に処理しているようですが、コンベンション、リファクタリング、およびその他のクールな機能Pylintが行うことはありません。

ありがとう!

役に立ちましたか?

解決

これはチケットです http://www.logilab.org/ticket/51222 Pylintプロジェクトについて。そのステータスを監視します。

他のヒント

グローバルにエラーを無効にしたくない場合は、これらの特定の行、例えば、それらを無効にすることができます。

def foo(self, foo_val): # pylint: disable-msg=E0102

は。迷惑。そして、私が見つけることができるすべての主要なツール(Pyflakes、Pylint、Pychecker)は、この問題を示しています。問題はバイトコードで始まるようですが、取得できません dis オブジェクトプロパティのバイトコードを教えてください。

この構文を使用した方が良いようです。

# Changed to longer member names to reduce pylint grousing
class HughClass(object):
    def __init__(self, init_value):
        self._hugh = init_value
    def hugh_setter(self):
        return self._hugh * 2
    def hugh_getter(self, value):
        self._hugh = value / 2
    hugh = property(hugh_getter, hugh_setter)

これが次のとおりです 素敵なブログ記事 その上。 LOL-QUOTE:

ゲッターとセッターは、JavaとC ++の悲しい世界に属します。

これは。。。でした Pyfleakesのバグとして報告されています, 、そして、それは現在のトランクに固定されているようです。だから私は答えは(今)だと思います:pyflakes!

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top