生成器:使用了 yield 的函数被称为生成器(generator)。它记住上一次返回时在函数体中的位置。
yeild运行过程:当你向生成器要一个数时,生成器会执行,直至出现 yield 语句,生成器把 yield 的参数给你,之后生成器就不会往下继续运行。 当你问他要下一个数时,他会从上次的状态。开始运行,直至出现yield语句,把参数给你,之后停下。如此反复 直至退出函数。
例:
def fun(x): count = x while True: val = yield count if val != None: count = val else: count += 1 f = fun(5) print(next(f)) print(next(f)) print(next(f)) print('我是分割线'.center(30,'*')) print(f.send(10)) print(next(f)) print(next(f))
执行结果:
5 6 7 ************我是分割线************* 10 11 12