python 生成器 yield语句

生成器就是一个返回迭代器(iterator)的函数。 包含了 yield 的函数,就是一个生成器。

生成器每使用yield语句产生一个值,函数就会被冻结(暂停执行),被唤醒后(即再次调用)接着上次执行,继续产生新的值。

一个函数中可以包含多个yield,原理不变。

在一些情况下使用生成器可以节省存储空间。

 

示例一:

def gen():
    for i in range(5):
        yield i*2
for i in gen():
    print(i)

--------------------
0
2
4
6
8

 

示例二:

def gen():
    for i in range(3):
        print('step one')
        yield i
        print('step two')
        yield i*2
        print('step three')

for i in gen():
    print(i)

------------------------
step one
0
step two
0
step three
step one
1
step two
2
step three
step one
2
step two
4
step three

 

posted @ 2019-07-16 09:26  路漫漫我不畏  阅读(594)  评论(0编辑  收藏  举报