2014-03-30 27 views
-3
class FibCounter: 

    def __int__(self): 
     self.Fibcounter = 0 

    def getCount(self): 
     return self.Fibcounter 

    def resetCount(self): 
     self.Fibcounter = 0 
     return self.Fibcounter 

    def fib(self,n): 
     self.Fibcounter = self.Fibcounter + 1 
     if n<3: 
      return 1 
     else: 
      return fib(n-1)+fib(n-2) 

def main(): 
    n = eval(input("Enter the value of n (n represents the nth Fibonacci number):")) 
    Fibonacci = FibCounter() 
    Fibonacci.fib(n) 
    print("The number of time fib function is called is:",Fibonacci.getCount()) 
    Fibonacci.resetCount() 

if __name__ == '__main__': 
    main() 
+2

這似乎是脫離主題,因爲它是由不能再現的問題或簡單的印刷錯誤造成的。 –

+0

'getCount()'是毫無意義的,因爲您可以直接訪問該屬性(並且應該在Python中這樣做,與Java不同)。而'resetCount()'不應該返回'self.Fibcounter',因爲這樣做毫無意義;只是省略'return'指令以便(隱含地)返回'None'。 – glglgl

回答

2

你缺少一個i

def __int__(self): 

你想

def __init__(self): 

這爲什麼Fibcounter未設置;您的__int__函數永遠不會被調用。

(不過,請注意Fibcounter不是在FibCounter類變量一個偉大的名字,所以你可能要改變它。)

之後,還有一些其他的問題進行修復(fib韓元不能稱自己,例如)

+0

你能解釋爲什麼fib不能自稱嗎?謝謝! – user3478368

+0

@ user3478368:試試吧。你需要通過'self.fib'來引用這個方法。 – DSM

相關問題