生成器调试

安稳与你 提交于 2019-11-28 05:08:00

 

 1 def creat_num(all_num):
 2     print("----------1-----------")
 3     a,b = 0,1
 4     current_num = 0
 5     while current_num < all_num:
 6         print("----------2-----------")
 7         yield a  # 如果一个函数中有yield语句,那么这个就不再是函数,而是一个生成器的模板
 8         print("----------3-----------")
 9         a, b = b, a+b
10         current_num += 1
11         print("----------4-----------")
12 
13 # 如果在调用creat_num的时候,发现这个函数中有yield,那么此时,不是调用函数,而是创建一个生成器对象
14 obj = creat_num(10)
15 
16 ret = next(obj)
17 print(ret)
18 
19 ret = next(obj)
20 print(ret)
21 
22 ret = next(obj)
23 print(ret)

结果:

----------1-----------
----------2-----------
0
----------3-----------
----------4-----------
----------2-----------
1
----------3-----------
----------4-----------
----------2-----------
1

  

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!