Python的协程及对yield和send()的理解

发布于 / python / 0 条评论

不对yield和send()做过多的解释,网上都有。

直接上代码

执行结果

执行produce(c),然后执行c.send(None),send()方法就是讲send中的内容去代替yield r整个表达式。,这里是n = None。然后return到produce中继续执行,此时进入while n < 5:循环中。

输出执行结果的第一句话Producing 1…  , 然后再次send(n),这里的n=1,将yield r又整体等于send里的值,即1。就会输出执行结果的第二句Consuming 1…。因为consumer中是while循环,所以当再执行到yield时,会在yield这里中断,并返回到produce中,此时的r = ‘200 OK’。输出执行结果的第三句 Consumer return: 200 OK

就这样依次类推,执行结果如上所示

本代码来自:廖雪峰官方网站-协程

转载原创文章请注明,转载自: adaptの小站 » Python的协程及对yield和send()的理解

Not Comment Found