调试
1 def creat_num(all_num): 2 a, b = 0, 1 3 current_num = 0 4 while current_num < all_num: 5 ret = yield a 6 print(">>>ret>>>",ret) 7 a, b = b, a+b 8 current_num += 1 9 10 obj = creat_num(10) 11 # obj.send(None) # send一般不会放到第一次启动生成器,如果非要这么做,传值必须用None 12 ret = obj.send(None) 13 print("----第一次----",ret) 14 15 ret = next(obj) 16 print("----第二次----",ret) 17 18 ret = obj.send(5) 19 print("----第三次---",ret) 20 21 ret = next(obj) 22 print("----第四次---",ret)
结果:
----第一次---- 0
>>>ret>>> None
----第二次---- 1
>>>ret>>> 5
----第三次--- 1
>>>ret>>> None
----第四次--- 2
send传的值不影响next()下次要取得值