生成器

什么是生成器

在函数内但凡出现yield关键字,再调用函数就不会出现函数体代码,会返回一个值,该值被称为生成器

为什么要有生成器

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

如何用生成器

def func():
    print('first1')
    print('first2')
    print('first3')
    yield 1 #暂停
    print('second1')
    print('second2')
    print('second3')
    yield 2  #暂停
    print('third')
    yield 3 #暂停
    print('fourth')

g=func()
print(g)    #得到的是一个内存地址
print(g.__iter__().__iter__().__iter__() is g)
res1=next(g)
print('第一次的返回值:',res1)

print('='*100)
res2=next(g)
print('第二次的返回值:',res2)

print('='*100)
res3=next(g)
print('第三次的返回值:',res3)

print('='*100)
res4=next(g)
print('第三次的返回值:',res4)

for item in g: #g=iter(g) #item=next(g)
    print(item)

 

 

posted @ 2018-06-13 20:14  Chillwave  阅读(128)  评论(0编辑  收藏  举报