2013-08-02 66 views
0

類型錯誤:Find_Number()失蹤1個人需要的位置參數: 'limitdivision'
我仍然不知道爲什麼我的代碼錯誤:Python的類型錯誤:Find_Number()失蹤1個人需要的位置參數: '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() 

任何人都可以告訴我支持這個代碼嗎?

回答

1

您正在調用類上的方法。你可能想叫它self代替:

num = self.Find_Number(index) 

這也同樣適用於你的方法都FindMaxNumber.參考;調用實例上的方法,除非你有一個非常具體的原因來調用它們,而在這種情況下,你需要明確地傳入一個實例作爲第一個參數。

+0

你能否更清楚地向我解釋你的評論:「你需要傳入一個實例作爲第一個參數」。 – Makara

+0

@Makara:通過訪問類的方法,您直接訪問* unbound *方法(Python 2)或函數(Python 3),並且沒有實例被綁定。你需要爲這些方法的'self'參數顯式傳遞一個對象。通過訪問* instance *上的方法(所以通過'self'),方法被綁定,並且'self'參數被Python填充。 –

相關問題