day14.1_生成器

一、什么是生成器?

在函数内但凡出现yield关键字,再调用函数就不会执行函数体代码,会返回一个值,改值称之为生成器,生成器的本质就是迭代器。

二、为什么要有生成器?

生成器是一种自定义迭代器的方式

三、生成器用来干什么?

print(res1)
# first1
# first2
# first3

2.for 循环的底层原理

for i in x:   # x 为可迭代对象
                # 1.  res1=x.__iter__()  先转为迭代器对象
                # 2.  res1.__next__()     再依次取值
                # 3.  for 自动检测,取完值之后自动停止取值

3.总结yield的功能:

3.1 提供自定义迭代器的方式

3.2 yield 可以暂时停止函数的执行,并有返回值

扫描二维码关注公众号,回复: 1582601 查看本文章

4. yield 和 return 的异同点

相同点:都是再函数内使用,都可以返回值且没有类型限制和个数

不同点:return 只可返回一次值且下面的同级代码不会继续执行,yield 可以返回多次值并且只是让该部分代码暂时停止住,若有需要,可以继续执行

猜你喜欢

转载自www.cnblogs.com/Smart1san/p/9177961.html