什么是生成器函数
只要函数里面有yield关键字,就是一个生成器函数
1 #!/user/bin/env python 2 # -*- coding:utf-8 -*- 3 4 5 def get_func(): 6 yield 1 7 yield 2 8 yield 3 9 yield 4 10 11 # 惰性求值,延迟求值提供了可能 12 13 14 def gen_fib(index): 15 n, a, b = 0, 1, 1 16 while n < index: 17 yield b 18 a, b = b, a+b 19 n += 1 20 21 22 def func(): 23 return 1 24 25 26 if __name__ == '__main__': 27 # 生成器对象, python编译字节码的时候就产生了 28 gen = get_func() 29 for value in gen: 30 print(value) 31 re = func() 32 for data in gen_fib(10): 33 print(data)
1 2 3 5 8 13 21 34 55 89