python 生成器并行和迭代器


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()函数
posted @ 2020-05-26 07:23  安好_世界  阅读(176)  评论(0编辑  收藏  举报