Python yield

153 阅读1分钟
生成器

生成器是通过一个或多个yield表达式构成的函数,每一个生成器都是一个迭代器。

如果一个函数包含yield关键字,这个函数就会变为一个生成器。

操作:
#用yield来创建生成器

def func()
:

for
a
in
range(
5
);

yield
a



# 用列表来创建生成器

[a
for
a
in
range
(
5
)]



# 调用

>>
> f = func()



>>
> f
# 这时生成器还没有启动



<generator object func at
0x8fe01a354521
>



>>
> f.next()
# 当a=0,遇到yield关键字,直接返回

0

>>
> f.next()
# 继续上一次执行的位置,进入下一层

...

>>
> f.next()

9

>>
> f.next()
# 当执行完最后一次循环后,结束yield语句,生成StopIteration异常错误

Traceback (most recent call last): File
"<stdin>"
, line
1
,
in
<
module>

StopIteration

更多学习资料可关注:itheimaGZ获取