admin管理员组

文章数量:1585965

只要含有yield关键字的函数都是生成器函数
那么什么是yield呢
看下图!

yield的用法跟return有点类似,但它不能和return共用且需要写在函数内
执行一个生成器函数会返回一个生成器
生成器的本质就是迭代器
生成器的表现形式:生成器函数
生成器表达式
生成器函数的特点:调用函数不执行,返回一个生成器
每次调用next方法的时候会取到一个值
直到取完最后一个,执行next会报错
这里再介绍生成器的一些其他方法
send方法

send功能和next差不多,它在获取下个值的时候给上一个值传递一个数据
使用send的注意事项:第一次使用生成器的时候,是用next获取下一个值
最后一个yield不能接收外部的值
看一个比较有趣的例子

上下两种方法相当
下面我们介绍一下生成器表达式
列表推导式:[i for i in range(3)]
生成器表达式:(i for i in range(3))
可以看出,这两个式子唯一有区别的就是括号
但它们的意义大不相同,前者返回一个列表,后者返回一个生成器
生成器的概念介绍到这里就结束了。

本文标签: 生成器