yield 生成器例子

Posted linux运维

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了yield 生成器例子相关的知识,希望对你有一定的参考价值。

 1 #!/usr/bin/env python
 2 #encoding: utf-8
 3 import time
 4 def consumer(name):
 5     print (%s 来吃包子了。。。 % (name))
 6     while True:
 7         baizi = yield  #执行到这会暂停,直到调用next的方法,然后在从这里执行
 8         print ("包子 [%s] 来了, 被 [%s] 吃了,,," % (baizi,name))
 9 
10 def producer():
11     c1 = consumer(lys)  #生成迭代器
12     c2 = consumer(zhy)
13     c1.__next__()  #迭代
14     c2.__next__()
15     for i in range(3):
16         print (开始重新做包子了,,,)
17         time.sleep(1)
18         print (做好了2个。来吃吧,,,)
19         c1.send(i) #发送给yied,接收参数
20         c2.send(i)
21 
22 producer()

 

以上是关于yield 生成器例子的主要内容,如果未能解决你的问题,请参考以下文章

迭代器例子

php yield Generator 处理大数组

PHP性能优化利器:生成器 yield理解

python里的生成器--yield

python3使用迭代生成器yield减少内存占用

深入解释yield和Generators