2018lzn

PYthon第十二天

1. 生成器

  生成器的本质是迭代器, 

最简单的生成器函数如下:

 1 def foo(x):          1-4行定义了一个简单的生成器函数
 2     yield x+1         yield 和 return 不同,  return 结束整个函数
 3     yield x+2          2, 3, 4 中 的yield 和 8, 9, 10 中 __next__ 一一对应
 4     yield x+3          
 5 
 6 
 7 f = foo(7)           创建一个生成器对象, 赋值给变量 f
 8 print(f.__next__())    f 调用一次 __next__, 就执行 函数中 一次 yield, 
 9 print(f.__next__())    注意单次向下执行
10 print(f.__next__())

程序运行结果如下:

8
9
10

注意, 如果再多调用一次__next__, 程序就会报错

posted on 2018-08-21 09:31  2018lzn  阅读(92)  评论(0编辑  收藏  举报

导航