2013-08-02 1 views
0

형식 오류 : Find_Number()없는 한 필요한 위치 인수 :파이썬 형식 오류 : Find_Number()없는 한 필요한 위치 인수 : 'limitdivision'

def main(): 
    obj = FindMaxNumber() 
    result = obj.Final_Result(500) 
    print("The Final Result is {} ". format(result)) 

class FindMaxNumber(): 
    delf Find_Division(self, num): 
     self.num = num  
     if num%2==0: 
      num = num/2 
      count = 0 
      division = 1 
      while num%2==0: 
       count+=1 
       num = num/2 
      division=division*(count + 1) 
      div = 3 
      while num != 1: 
       count = 0 
       while num%div==0: 
         count+=1 
         num = num/div 
       division = division(count + 1) 
       div+=2 
     return division 
    def Find_Number(self, limitdivision): 
     self.limitdivision = limitdivision 
     n = 1 
     inum , fnum = FindMaxNumber.Find_Division(n) , FindMaxNumber.Find_Division(n+1) 
     while inum*fnum < limitdivision: 
      n+=1 
      inum , fnum = fnum , FindMaxNumber.Find_Division(n+1) 
     return inum 
    def Final_Result(self , index): 
     self.index = index 
     num = FindMaxNumber.Find_Number(index) 
     final = (num(num+1)/2) 
     return final 
if __name__=="__main__": main() 
: 'limitdivision'
내 코드는 오류가 난 아직도 왜하지

누구든지 내가이 코드로 무엇을 지원하는지 말할 수 있습니까?

답변

1

클래스에서 메서드를 호출하고 있습니다. 당신은 아마 대신 self에 전화를하고 싶었 : 이것은 당신의 방법에있는 모든 FindMaxNumber. 참조 간다

num = self.Find_Number(index) 

을; 그 대신 클래스에서 호출 할 특별한 이유가없는 한 인스턴스의 메서드를 호출합니다.이 경우 인스턴스를 첫 번째 인수로 명시 적으로 전달해야합니다.

+0

"첫 번째 인수로 인스턴스를 전달해야합니다."라는 의견을 좀 더 명확하게 설명해 주실 수 있습니까? – Makara

+0

@Makara : 클래스의 메소드에 액세스하면 * 언 바운드 * 메소드 (Python 2) 또는 함수 (Python 3)에 직접 액세스하고 인스턴스가 바인딩되지 않습니다. 이러한 메소드의'self' 매개 변수에 대한 객체를 명시 적으로 전달해야합니다. * 인스턴스 *의 메소드에 접근하면 (그래서'self'를 통해) 메소드가 바인드되고'self' 매개 변수가 파이썬에 의해 채워집니다. –

관련 문제