2016-08-18 36 views
1

を持っていない私はそうのように編成クラスている:私はこれを実行したとき、それは「E1101」 - 「クラス」のインスタンスがない「方法」メンバー

class One: 
    def funcOne(self): 
     doSomething() 

class Two(One): 
    def funcTwo(self): 
     self.funcOne() 

働いていた、とTwoができるようにするために、Pythonの継承モデルが可能にfuncOneに電話してください。

しかし、pylintを実行すると、私にエラーを与える:

[E1101 (no-member), myscript] Instance of 'Two' has no 'funcOne' member 

私はすでにanother question on the siteに見えたが、その質問心配変数、および提案された唯一の解決策は、辞書にそれらを置くことだった、どのあなたがすることはできませんメソッドで行う

どのようにしてpylintに継承動作を認識させることができますか?


編集:私は途方もなく古いですpylint 1.1.0を、実行しているよ、多分それが原因ですか?

+0

間に固定されたpylintのバグであると仮定します。' self.funcOne() ' – Nicarus

+0

@Nicarus申し訳ありません、ということ私は更新するでしょう – Jeeter

+0

問題を "解決"しませんが、この行を追加することでこのエラーを明示的に無視することができます: '#pylint:disable = E1101' – Nicarus

答えて

0

コールself.funcOne()

もクラスの一つは、それはpylintの私のバージョンが古い深刻だったことが判明したオブジェクト

class One(object): 
    ... 
+0

混乱して申し訳ありません、 'self'と呼んでください。また、私はPythonクラスが 'object'から暗黙的に継承していると考えましたか? – Jeeter

+1

@Jeeter - python 3+のみです。しかし、いつでも明示的にすることをお勧めします。 –

+0

@Jeeter - どのようにfuncTwo()を呼び出していますか? –

0

から継承する必要があります。私はバージョン1.1.0を実行していて、最新のバージョン1.6.4に更新され、警告は消えました!

私はこれがそう、 `self`とfuncTwo`` `内funcOne`を呼び出してみたバージョン

関連する問題