首页 > 编程语言 > 详细

初识python: 生成器并行(做包子,吃包子)

时间:2018-10-20 14:25:07      阅读:229      评论:0      收藏:0      [点我收藏+]

知识点:

send(i) :唤醒yield,并将 i 的值传给 yield

#!/user/bin env python
# author:Simple-Sir
# time:20181020
# 单线程并发:做一个包子,两个人吃
import time
# 吃包子生成器
def chibaozi(name):
    print(%s想吃包子了! %name)
    while True:
        baozi = yield
        print(第%s个包子来了,被%s吃了一半!%(baozi,name))

# 逻辑解析
# c = chibaozi(‘SimpleGirl‘)
# c.__next__()  # 唤醒yield
# b1=‘牛肉包子‘
# c.send(b1)  # 注:唤醒yield,并将b1的值传给 yield

# 做包子生成器
def zuobaozi(name):
    c1 = chibaozi(SimpleSir)
    c2 = chibaozi(SimpleGirl)
    c1.__next__()
    c2.__next__()
    print(%s开始做包子了!%name)
    for i in range(1,6):
        time.sleep(1)
        print(%s做了1个包子!%name)
        c1.send(i)
        c2.send(i)

# 调用函数
zuobaozi(SimpleSir)

 

执行结果:

技术分享图片

 

初识python: 生成器并行(做包子,吃包子)

原文:https://www.cnblogs.com/simple-li/p/9821453.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!