深入理解Python中的yield和send

时间:2022-01-05 03:58:57

send方法和next方法唯一的区别是在执行send方法会首先把上一次挂起的yield语句的返回值通过参数设定,从而实现与生成器方法的交互。

但是需要注意,在一个生成器对象没有执行next方法之前,由于没有yield语句被挂起,所以执行send方法会报错。

因为当send方法的参数为None时,它与next方法完全等价。但是注意,虽然这样的代码可以接受,但是不规范。所以,在调用send方法之前,还是先调用一次next方法为好。

 

python特性(八):生成器对象的send方法 - CSDN博客

彻底理解Python中的yield - 简书

Python学习-yield浅析和send()函数 - CSDN博客

Python yield与实现 - cococo点点 - 博客园

yield与send实现协程操作 - 看雪。 - 博客园