生成器操作:
生成器是通过一个或多个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获取