参照来自:http://www.ibm.com/developerworks/cn/opensource/os-cn-python-yield/
http://blog.csdn.net/myjiayan/article/details/26162911
#-*- coding : utf-8 -*-
class Fab(object):
def __init__(self,max):
self.max = max
self.a,self.b,self.n = 0,1,0
def __iter__(self):
return self
def next(self):
if self.n < self.max:
self.a ,self.b =self.b ,self.a +self.b
self.n = self.n + 1
return self.b
raise StopIteration
for i in Fab(10):
print i
定义__iter__就是可以迭代的,定义next 就是迭代器。不同的斐波那其契数列所使用的内存空间不同,因为返回的是列表,还是iterator