2012-01-11 2 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 

는 인수 목록에 자신을 정의 할 필요가 없습니다 것입니다.