十、生成器

#大前提:生成器就是一种自定义的迭代器,本质就是迭代器

# 但凡函数内包含yield关键字,调用函数不会执行函数体代码,会得到一个返回值,该返回值就是生成器对象

def func():
    print('first')
    yield 1
    print('second')
    yield 2
    print('third')
    yield 3
    print('fourth')

g=func()
print(g)
print(g.__iter__().__iter__() is g)

res1=next(g)
-----------------------------------------------------------------------------------------
<generator object func at 0x00000245E1BDBDB0>
True
first

#会触发函数的执行,直到碰到一个yield停下来,并且将yield后的值当作本次next的结果返回

猜你喜欢

转载自blog.51cto.com/silencezone/2349905