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))
自定义一个迭代器实现斐波那契数列
猜你喜欢
转载自blog.csdn.net/qq_43004728/article/details/84190147
今日推荐
周排行