2012-01-11 14 views
5

私はクラスで作業していて、クラス内からヘルパーメソッドを呼び出そうとしています。私は次のコードを作業に持っていますが、メソッドの引数として "self"をすでに持っているときにヘルパー関数の引数として "self"を渡す必要があるのはわかりません。下の例でFrequency .__ helper(self、record)と呼ぶときに引数として渡さなければならない理由はありますか?ヘルパーメソッドの引数としてselfを渡します

ありがとうございます!

class Frequency: 

    def __init__(self, record): 
     self.record = record 

    def __helper(self, datalist) 
     do something to datalist... 

    def getFreq(self): 
     allrec = self.record 
     record = allrec[1].split(' ') 
     var = Frequency.__helper(self, record) 
     return var 

答えて

2

メソッドを呼び出すための正しい方法は、ちょうど同じことを行いますが、より直感的な方法で

var = self.__helper(record) 

です。

2

はい、この場合は、関数を@staticmethodと宣言していないため、そうする必要があります。メソッドが静的でない場合は、インスタンスを渡す必要があります。

あなたのような何かをする場合は、次の

class Frequency: 
    @staticmethod 
    def test(datalist): 
     pass 

あなたは引数リストの中に自己を定義する必要がないでしょう。

関連する問題