import time
def consumer(name):
print("%s 准备吃包子啦!" % name)
while True:
baozi = yield
print("包子[%s]来了,被[%s]吃了!" % (baozi, name))
c = consumer('LiuCheng')
#唤醒yield
c.__next__()
bz='猪肉馅'
#唤醒yield,并且赋值
c.send(bz)
#生成器并行
def producer(name):
c = consumer('A')
c2 = consumer('B')
c.__next__()
c2.__next__()
print("老子开始准备做包子啦!")
for i in range(10):
time.sleep(1)
print("做了2个包子!")
c.send(i)
c2.send(i)
producer("LiuCheng")
#直接作用于for循环的对象统称为可迭代对象:Iterable
#可以被next()函数调用并不断返回下一个值得对象称为迭代器:Iterator
#dict/str/list等Iterable变成Iterator可以使用iter()函数