Python基础---生成器

目录

1.生成器函数

概念

练习

2.send()

概念

练习

3.yield form

4.生成器表达式


生成器的本质:迭代器

生成器包括两种:生成器函数和生成器表达式

作用:可以实现多任务(协程-->模拟并发)

1.生成器函数

概念

一个包含yield关键字的函数就是一个生成器函数。并且yield不能和return共用,并且yield只能用在函数内。

(1).生成器函数执行之后会得到一个生成器作为返回值,并不会执行函数体。

(2).执行了__next__()方法之后才会执行函数体,并且获得返回值。

(3).next()内置方法,内部调用生成器函数的__next__()方法。

(3).yield和return相同的是可以返回值,但是不同的是yield 不会结束函数

具有惰性,推一步走一下,调用一次生成器函数的__next__()方法或next()函数执行一下,遇到yield即止

练习

创建一个生成器,并且调用

创建一个生成器,并且设置返回值

创建生成器,定义多个yield 值

创建生成器,生成200万桶康师傅方便面

2.send()

概念

send 获取下一个值的效果和next()基本一致,只是在获取下一个值的时候,给上一yield的位置传递一个数据

使用send的注意事项

(1).第一次使用生成器的时候 是用next获取下一个值

(2).最后一个yield不能接受外部的值

练习

使用send()方法给yield传递参数

3.yield form

yield from 循环遍历容器类型

使用for循环取出g1生成器中所有的值

使用 yield from 遍历出可变数据类型中的数据

4.生成器表达式

格式:将列表解析式[] 改成 () 即可

使用生成器表达式,进行数数

老母鸡下蛋,使用列表推导式生成

老母鸡下蛋,使用生成器表达式

猜你喜欢

转载自blog.csdn.net/weixin_44239385/article/details/86518282
今日推荐