后浪小萌新Python --- 生成器

一、生成器

生成器的本质就是迭代器;

生成器其实是能够产生多个数据的容器,而不是真正同时保存多个数据的容器

二、怎么创建生成器

调用带有yield关键字的函数就能得到一个生成器

比较:

调用普通函数:a.执行函数体 b.获取函数返回值

调用带有yield关键字的函数:a.不执行函数体 b.获取到的是生成器对象

三、生成器怎么生产数据

a. 一个生成器能生产多少数据? - 看执行生成器对应的函数,在函数结束的时候能够遇到几次yield,就能生产多少个数据

b. 生成器生产的数据是哪些? - 看每次遇到 yield 后面的数据是什么,产生的数据就是什么

四、生成器产生数据的原理

调用函数创建生成器对象的时候不会执行函数体;当获取生成器中的元素的时候才会执行函数体。

获取第一个元素的时候从函数开始开始执行,执行遇到第一个yield就会停下来,并且将yield后面的数据作为这次获取到的元素,下次获取元素的时候从上一次结束的位置接着往后执行函数体直到遇到下一个yield,并且将新的yield的数据作为新的元素,
以此类推

如果从上次结束的位置开始到函数结束都没有遇到yield那么这个生成器就不会再创建数据了,如果是next操作,这个时候会报错

注:每次调用函数的时候都是在创建新的生成器对象

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值