生成器调试---send方式

调试

 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()下次要取得值

原文地址:https://www.cnblogs.com/yifengs/p/11394560.html