浅谈Python中的协程

1.什么是协程

协程在句法上可以看做是一种特殊的生成器,在协程中yield关键字是处在等于号的右边,协程可以产出相应的值并且接受send方法传递进来的值,协程会在yield关键字处暂停,等待调用方来向协程传递值。协程是指一个过程,这个过程与调用方协作,产出由调用方提供的值。

2.协程的简单使用

浅谈Python中的协程
(1)simple_coroutine是我们定义的一个简单的协程,定义体中有yield关键字且yield关键字是处于等号的右边,
(2)通过调用函数我们得到的是一个生成器对象,然后我们调用next函数来**协程,协程运行到yield处暂停
(3)调用协程的send方法来向协程传递数值,传递进来的数值被变量x接收
(4)协程运行到末尾像生成器一样抛出了一个StopIteration异常
注意:如果创建协程后立马向协程发送数据会出现如下错误
![在这里插入图片描述](https://img-blog.****img.cn/20200914131642364.PNG#
为了更好的理解协程的特性,我们来创建一个产出多个值的协程
浅谈Python中的协程
(1)my_coro是一个简单的协程,调用next函数后打印出a的值,并且产出a的值后暂停
(2)调用send传递参数2之后,b接收了这个数值,打印出b的值并且产出a+b的值
(3)c接收传递进来的数值3此时协程运行结束,抛出异常。