#!/usr/local/bin/python3 # -*- coding:utf-8 -*- import time # ----------示例---------- def consumer(name): print("%s 准备吃包子啦!" %name) while True: baozi = yield print("包子[%s]来了,被[%s]吃了!" %(baozi,name)) # 此行代码作用:将函数consumer变成了一个生成器,并将"zhangyu"传入,其他什么都没干 a = consumer("zhangyu") # 此处的__next__()方法:程序从头开始执行,至yield处程序中断并将yield值返回 a.__next__() # 此处的send("xx")作用:1-唤醒yield并将值传入,然后继续执行下面的代码 a.send("猪肉芹菜") def producer(name): c = consumer('张宇') c2 = consumer('马宏燕') c.__next__() c2.__next__() print("老子开始准备做包子啦!") for i in ['猪肉芹菜', '三鲜', '虾仁', '荠菜', '酸豆角', '玉米猪肉', '牛肉']: time.sleep(1) print("做了2个包子!一人一个!") c.send(i) c2.send(i) producer("alex")