yiled
2018-07-21 17:50 冻奶香甜玉米片 阅读(443) 评论(0) 收藏 举报def fib(max):
n,a,b = 0,0,1
while n < max:
print("hallo")
yield b #把函数执行过程冻结在这一步,并且把b的值返回给next()
并且函数中有yield,函数一运行根本不执行,只是生成一个生成器对象
a,b = b,a+b
n+=1
f = fib(15)
next(f)
可以控制函数进程
函数有了yiled之后
1.函数名加()得到了生成器
2.return在生成器里代表生成器的中止,就会报错(其实有没return,生成器中止后都会报错)
f.send(" ")作用和next(f)差不多,一样唤醒暂停的生成器,还可以接受信息,如设定条件接收信息可以使生成器结束
peiqi猜想next(f)就是调用了send。f.send(None)
浙公网安备 33010602011771号