python协程

1年前 (2020-02-13) 422次浏览 已收录 2个评论

一、协程

def go():
    data=""
    r=yield data
    print("1",r,data)
    r=yield  data
    print("2",r,data)
    r=yield  data
    print("3",r,data)
    r=yield data #最后一个为空代表结束        #没有这个语句会报异常

my=go()
print(my.send(None))#启动,none启动
print(my.send("2"))
print(my.send("3"))

二、协程编号

def go():
    data=""
    for i in range(100):
        r=yield data
        print(i,r)


my=go()
print(my.send(None))
print(my.send("dd"))
print(my.send("ff"))

三、生产者消费者

def make(d):
    d.send(None)    #启动消费者
    n=0
    while n<10:
        n=n+1
        print("生产",n)
        r=d.send(n)
        print("消费者返回的",r)
    d.close()

def deleter():
    r=""
    while True:
        n=yield r   #获取发送的数据 n--收到的数据   r--返回的数据
        if not n:
            return
        print("消费",n)
        r="OK"

d=deleter()
make(d)

渣渣龙, 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:python协程
喜欢 (0)

您必须 登录 才能发表评论!

(2)个小伙伴在吐槽
  1. 以后多多交流
    2020-03-27 13:17
  2. 给你点赞
    2020-03-28 16:59