Python学习 day14

 一、生成器进阶

先看示例:

def generator():
    print(123)
    yield 'a'
    print(456)
    yield 'b'
    print(789)


g = generator()
print(next(g))
print("-------我是分割线-------")
print(next(g))
print("-------我是分割线-------")
print(next(g))
print("-------我是分割线-------")

得到的结果:

上述示例中,生成器函数generator中在最后一个yield后面还有代码,在取完最后一个值后再次执行next(),可以看到后面的“789”依然输出了,但是函数执行完还是找不到下一个yield,就报错了。

同样的,for循环取值也是可以将生成器执行完的,for循环也是以报错结束,只有在函数找不到最后一个yield的时候才会报错。

猜你喜欢

转载自www.cnblogs.com/misutang/p/9850820.html