python生成器的原理探究

  • 更新时间:2021-06-22 10:52:15
  • 编辑:容思涵
本站收集了一篇相关的编程文章,网友戴泽宇根据主题投稿了本篇教程内容,涉及到Python相关内容,已被627网友关注,如果对知识点想更进一步了解可以在下方电子资料中获取。

参考资料

正文内容

码农之家最近发表了一篇名为《python生成器的原理探究》的py文章,实例讲的很实用,把错误代码改掉了,希望对网友有用。

python生成器的原理探究

本文教程操作环境:windows7系统、Python 3.9.1,DELL G3电脑。

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

相关教程

  • Python基于回溯法子集树模板解决找零问题示例

    这篇文章主要介绍了Python基于回溯法子集树模板解决找零问题,简单描述了找零问题并结合具体实例形式分析了Python使用回溯法子集树模板解决找零问题的步骤、实现方法与相关操作技巧,需要的

    发布时间:2019-08-26

  • python初学用什么工具

    初学者学习Python,或者其他程序语言,最好的编程工具就是文本编辑器,不需要太花哨的功能,只要运行速度快,占用资源少,就OK。推荐给大家,那就是Sublime Text 3。轻量级,这一条就足矣。

    发布时间:2019-07-10

用户留言