迭代器和生成器


#如何做并行
#生产者-消费者模型
 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()本身就是一个迭代器
View Code
原文地址:https://www.cnblogs.com/pythonkids/p/7695767.html