首页 > 其他 > 详细

生成器

时间:2019-11-14 15:55:07      阅读:62      评论:0      收藏:0      [点我收藏+]

举例1

def func():    
   print("1--start")    
   print("1-蛋")    
   yield"蛋1"    
   print("2-蛋")    
   yield"蛋2"
   print("取最后一个")  
res = func()           #res是迭代器对象print(next(res))    
print(next(res))       #next(迭代器对象)
print(next())

 

举例2

举例循环10次(python2和python3的区别)

for i in range(1,11)
print(i)       #1-10的打印出来
python2:range(1,5) --->[1,2,3,4]
python3: range(1,5)--->range对象--->生成器--->迭代器
res =range(1,5)
print(res)

 

举例3

自定义range功能,创建一个自定义的生成器

def my_range(start, end, move=1):  
   while start < end:
       yield start
       start += move
       
for line in my_range(1,7,2)
   print(line)

1、什么是生成器?
生成的工具。生成器是一个“自定义”的迭代器,本质上是一个迭代器。

2、如何实现生成器
但凡在函数内部定义了的yield,调用函数时,函数体代码不会执行,会返回一个结果,该结果就是一个生成器。

yield:每一次yield都会往生成器对象中添加一个值。
yield只能在函数内部定义
yield可以保存函数的暂停状态。

yield与return
相同点:返回值的个数都是无限制的。
不同点:return只能返回一个值,yield可以返回多个值。

 

生成器

原文:https://www.cnblogs.com/medigrat/p/11857604.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!