python中生成器的原理是什么

这篇文章将为大家详细讲解有关python中生成器的原理是什么,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

成都创新互联公司-专业网站定制、快速模板网站建设、高性价比天宁网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式天宁网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖天宁地区。费用合理售后完善,十载实体公司更值得信赖。

Python的优点有哪些

1、简单易用,与C/C++、Java、C# 等传统语言相比,Python对代码格式的要求没有那么严格;2、Python属于开源的,所有人都可以看到源代码,并且可以被移植在许多平台上使用;3、Python面向对象,能够支持面向过程编程,也支持面向对象编程;4、Python是一种解释性语言,Python写的程序不需要编译成二进制代码,可以直接从源代码运行程序;5、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中生成器的原理是什么就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。


本文标题:python中生成器的原理是什么
文章位置:http://scyanting.com/article/jeepeg.html