生成器
一、什么是生成器
函数内包含yield的关键字,在调用函数时不会执行内部代码,得到的函数返回值就是一个生成器对象
def chicken(): print(‘=====>first’) yield 1 print(‘=====>sencond’) yield 2 print(‘=====>third’) yield 3obj=chicken()print(obj) #<generator object func at 0x > 生成器对象
二、生成器就是迭代器
生成器本质就是迭代器,也就是说生成器的玩法其实就是迭代器的玩法
obj.__iter__obj.__next__#2、所以生成器就是迭代器,因此可以这么取值res=next(obj)print(res)
模仿range() 功能
def my_range(start,stop,step=1): while start < stop: yield start start+=step
for item in my_range(1,10,2): print(item)# 结果 :1,3,5,7,9
三、总结yield
#1、为我们提供了一种自定义迭代器的方式,# 可以在函数内用yield关键字,调用函数拿到的结果就是一个生成器,生成器就是迭代器#2、yield可以像return一样用于返回值,区别是return只能返回一次值,而yield可返回多次# 因为yield可以保存函数执行的状态
更多潍坊平面设计培训相关资讯,请扫描下方二维码