Python生成器generators与yield

在Python中,创建生成器generator的方法之一就是在函数中使用yield关键字,原本的函数就变成了一个generator。

换句话说,如果一个函数至少包含一个yield声明(当然它也可以包含其他yield或return),那么它就是一个generator。

理解generator的三个要点:

  • generator可以看作一个可以停止的函数
  • 在对generator的连续调用之间,generator的本地变量和状态会被保存
  • 最终,generator函数终止,再调用generator会引发StopIteration异常

下面用一个例子来解释:
在这里插入图片描述
在本例中,前两次执行print(next(mygen))语句后,都会连续地调用generator,每次调用后,生成器的本地变量和状态被保存。迭代停止(没有yeild)后,再次调用generator,会返回迭代异常。

发布了673 篇原创文章 · 获赞 644 · 访问量 38万+

猜你喜欢

转载自blog.csdn.net/zhaohaibo_/article/details/104376322
今日推荐