dive into python P345
使用生成器替代递归:
'''
fib(100)返回一个生成器的对象
for循环将会创建一个生成器对象并连续调用其next方法获得值并赋予循环变量v
每轮for循环v都从yield语句获得一个新的值
'''
def fib(maxnumber): a,b=0,1 while a<maxnumber: yield a a,b=a+b,a if __name__ == '__main__': #fib(100)返回一个生成器的对象 #for循环将会创建一个生成器对象并连续调用其next方法获得值并赋予循环变量v for v in fib(100): print v,