技术文章 > Python技术 >  Python基础教程 > 正文

python生成器的原理探究

小妮浅浅

在对于python学习的时候,容易把生成器与别的知识点混淆,其实想要判断有个最简单的方法,看看是否使用yield函数就知道了。本篇我们会对python生成器的工作情况进行展示,了解生成器的作用机制。下面我们先对其概念和组成进行学习,然后带来相关的代码实例练习。

1、概念

生成器是通过使用yield语句而不是return语句定义一个普通函数来创建的。如果函数包含至少一个yield语句,它就成为一个生成器函数。yield和return都将从函数返回一些值。函数在执行return时终止,而yield语句暂停函数,保存它的所有状态,然后在后续调用时继续执行。

2、组成

至少有一个yield语句。

返回一个对象(迭代器),但不立即开始执行。

记住连续调用之间的局部变量及其状态。

实现迭代协议。

3、原理分析

下面是使用生成器的类似内容。可以发现,调用__iter__()和__next__()都是由生成器自动处理的:

# Generator for next power of two.
def NextPowTwo(max_ele):
    n = 0
    while n < max_ele:
        yield 2 * n
        n += 1
    raise StopIteration
 
           
obj = NextPowTwo(20)
print (obj.next())
print (obj.next())
print (obj.next())
print (obj.next())

以上就是python生成器的原理探究,相信现在已经能够通过yield来明确生成器的使用了。同时我们可以发现,生成器在自动处理调用上是非常好用的。

免费视频教程
本教程部分素材来源于网络,版权问题联系站长!
相关文章
  干货推荐:Python迭代器和生成器最易懂、最全面的文章
  python中yield生成器用法详解
  python的生成器是什么
  python生成器如何实现
  python迭代器和生成器区别是什么
  深入理解Python中的生成器
  python迭代器与生成器用途是什么
  解析python生成器函数的调用
相关视频章节
  什么是tkinter窗口
  例子3 登录窗口
  例子2 登录窗口
  例子1 登录窗口
  pack grid place 放置位置
作者信息

小妮浅浅

认证0级讲师

最近文章
python在协程中增加任务 455
python pyg2plot的原理 353
python中pyg2plot如何使用? 160
推荐视频
视频教程分类