能使用数据,但不会使用太大空间
能够使用for循环,能够取里面的数据,但是不是生成序列的结果,而是方式,空间小。
classFibIterator(object):"""斐波那契数列迭代器"""def__init__(self, n):"""
:param n: int, 指明生成数列的前n个数
"""self.n = n# current用来保存当前生成到数列中的第几个数了self.current =0# num1用来保存前前一个数,初始值为数列中的第一个数0self.num1 =0# num2用来保存前一个数,初始值为数列中的第二个数1self.num2 =1def__next__(self):"""被next()函数调用来获取下一个数"""ifself.current < self.n: num = self.num1 self.num1, self.num2 = self.num2, self.num1+self.num2 self.current +=1returnnumelse:raiseStopIterationdef__iter__(self):"""迭代器的__iter__返回自身即可"""returnselfif__name__ =='__main__': fib = FibIterator(10)fornuminfib: print(num, end=" ")
网友评论