生成器——day14


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

如何得到生成器?
但凡函数内出现yield关键字,再去调用函数不会立即执行函数代码体,会得到一个返回值该返回值就是生成器对象及自定义的迭代器
def func():
print('first')————执行第一次取出一个值
yield 1
print('second')————执行第二次取出一个值
yield 2
print('third')————执行第三次取出一个值
yield 3

g=func()
print(g)————func的内存地址

res1=next(g)————执行第一次取出一个值
print(res1)

res2=next(g)————执行第二次取出一个值
print(res2)

res3=next(g)————执行第三次取出一个值
print(res3)

next(g)

可以生成想要范围内的数
def my_range(start,stop,step=1):
while start < stop: ——# 5 < 5(顾头不顾尾)
yield start
start+=step

range(1,5,2) # 1 3
for i in my_range(1,5000000000000000000000000000000000000000000,2): # 1 3
print(i)————会一直循环输出上面这个值以内的值

posted @ 2018-12-03 15:39  WenChen-0o0  阅读(88)  评论(0编辑  收藏  举报