使用迭代器实现斐波那契数列:
class Fibonacii(object):
def __init__(self,all_num):
self.all_num = all_num
self.cur_idx = 0
self.a = 0
self.b = 1
def __iter__(self):
return self
def __next__(self):
if self.cur_idx >= self.all_num:
raise StopIteration
ret = self.a
self.a, self.b = self.b, self.a + self.b
self.cur_idx += 1
return ret
fibo = Fibonacii(10)
for i in fibo:
print(i)
使用生成器实现斐波那契数列:
def fibnacii(count):
num = 0
a,b = 0,1
while num < count:
yield a
a,b = b, a+b
num += 1
fi = fibnacii(3)
for i in fi:
print(i)