生成器的本质是迭代器,
最简单的生成器函数如下:
def foo(x): 1-4 行定义了一个简单的生成器函数
yield x+1 yield 和 return 不同, return 结束整个函数
yield x+2 2, 3, 4 中 的 yield 和 8, 9, 10 中 __next__ 一一对应
yield x+3
f = foo(7) 创建一个生成器对象, 赋值给变量 f
print(f.__next__()) f 调用一次 __next__, 就执行 函数中 一次 yield,
print(f.__next__()) 注意单次向下执行
print(f.__next__())
程序运行结果如下:
8 9 10
注意, 如果再多调用一次__next__, 程序就会报错
来源: http://www.bubuko.com/infodetail-2736018.html