1 import time
2 def consumer(name):
3 print("%s 消费者吃包子!" %name)
4 while True:
5 baozi=yield#保存当前状态
6 print("包子[%s]来了,被[%s]" %(baozi,name))
7 # c_1=consumer("小明")
8 # c_1.__next__()
9 #
10 # b1="韭菜馅"
11 # c_1.send(b1)#给yield传值,__next()__只调用yield,不传值
12
13 def producer(name):
14 c_1=consumer('A')
15 c_2 = consumer('B')
16 c_1.__next__()
17 c_2.__next__()
18 print("厨师开始做包子")
19 for i in range(10):
20 time.sleep(2)
21 print("%s做了%s包子"%(name,i))
22 c_1.send(i)
23 c_2.send(i)
24
25 producer("zxq")
26 #通过iter()的方法,可以使迭代对象变成迭代器,使用__next__的方法
27 print(range(10))#range()本身就是一个迭代器