码迷,mamicode.com
首页 > 其他好文 > 详细

生成器

时间:2018-10-04 11:18:58      阅读:181      评论:0      收藏:0      [点我收藏+]

标签:对象   display   main   消费   遇到   consumer   none   strong   int   

本质就是一个函数(包含yield关键字)




 

技术分享图片

技术分享图片

技术分享图片

技术分享图片
 1 import random
 2 import time
 3 
 4 
 5 def consumer():
 6     while True:
 7         data = yield  # 返回data 暂停函数 等待下一次next激活
 8         print("消费者拿到:", data)
 9 
10 
11 def producer(cos):
12     next(cos)  # 激活一下生成器  让他执行到yield
13     while True:
14         item = random.randint(0, 100)
15         print("生产者生产了:", item)
16         cos.send(item)  # 激活生成器  执行生成器里面的代码  遇到yield 回来
17         time.sleep(1)
18 
19 
20 if __name__ == __main__:
21     c = consumer()  # 返回一个消费者生成器对象
22     producer(c)
生成器实现生产者消费者模型
技术分享图片
 1 # 斐波拉切数列  兔子数列
 2 def func(number):
 3     n, a, b = 0, 1, 1
 4     while n < number:
 5         yield a
 6         a, b = b, a+b
 7         n += 1
 8 
 9 
10 for i in func(10):
11     print(i, end=" ")
兔子数列

 

生成器

标签:对象   display   main   消费   遇到   consumer   none   strong   int   

原文地址:https://www.cnblogs.com/gkl123/p/9740294.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!