自定義一個迭代器實現斐波那契數列
阿新 • • 發佈:2018-12-22
class Fibiter(object): def __init__(self,n): #初始化引數 self.n = n #生成數列的前n個數 #當前數列中的第幾個數 self.current = 0 #儲存前一個數,初始為數列的前兩個 self.num1 = 0 self.num2 = 1 #要實現迭代器得明白實現迭代的原理,實現iter和next方法 def __next__(self): #說明還未達到 if self.current < self.n: num = self.num1 self.num1,self.num2 = self.num2,self.num2+self.num1 self.current += 1 return num else: raise StopIteration def __iter__(self): return self b = Fibiter(5) print(list(b))