# 利用协程编号defgo():
data =''# send一次,循环一次for i inrange(10000000):
r =yield data # 获取发送的数据print(i, r)if __name__ =='__main__':
my = go()
student_list =[None,'小明','小红','小张']# 协程第一个参数必须传递空for student in student_list:
my.send(student)
0 小明
1 小红
2 小张
生产者消费者
defmaker(d):
d.send(None)# 启动消费者
n =0# 生产十个while n <10:
n +=1print('生产了', n)# 通知消费者,并获取返回值
r = d.send(n)print('消费者返回的', r)
d.close()defdeleter():# 协程
r =NonewhileTrue:
n =yield r # n是收到的数据,r是要返回的数据print('消费了', n)# r作为返回值
r ='OK'+str(n)if __name__ =='__main__':
deleter1 = deleter()
maker(deleter1)
编号# 利用协程编号def go(): data = '' # send一次,循环一次 for i in range(10000000): r = yield data # 获取发送的数据 print(i, r)if __name__ == '__main__': my = go() student_list = [None, '小明', '小红', '小张'] # 协程第一个参数必须传递空 for student