深入理解Python中的yield和send

本文详细解释了Python中生成器的send方法与next方法的区别,send方法能够在执行时将值传递给生成器内部的yield表达式,实现了生成器与外部程序的数据交互。需要注意的是,在首次调用send方法前,通常需要先调用一次next方法来初始化生成器。

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

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

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

 

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

彻底理解Python中的yield - 简书

Python学习-yield浅析和send()函数 - 优快云博客

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

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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值