python生成器的原理探究
python生成器的原理探究
本文教程操作环境:windows7系统、Python3.9.1,DELLG3电脑。
1、概念
生成器是通过使用yield语句而不是return语句定义一个普通函数来创建的。如果函数包含至少一个yield语句,它就成为一个生成器函数。yield和return都将从函数返回一些值。函数在执行return时终止,而yield语句暂停函数,保存它的所有状态,然后在后续调用时继续执行。
2、组成
至少有一个yield语句。
返回一个对象(迭代器),但不立即开始执行。
记住连续调用之间的局部变量及其状态。
实现迭代协议。
3、原理分析
下面是使用生成器的类似内容。可以发现,调用__iter__()和__next__()都是由生成器自动处理的:
#Generatorfornextpoweroftwo.
defNextPowTwo(max_ele):
n=0
whilen yield2*n n+=1 raiseStopIteration obj=NextPowTwo(20) print(obj.next()) print(obj.next()) print(obj.next()) print(obj.next()) 在对于python学习的时候,容易把生成器与别的知识点混淆,其实想要判断有个最简单的方法,看看是否使用yield函数就知道了。 以上就是python生成器的原理探究,相信现在已经能够通过yield来明确生成器的使用了。同时我们可以发现,生成器在自动处理调用上是非常好用的。更多Python学习教程请关注IT培训机构:千锋教育。
相关推荐HOT
更多>>python中numpy.concatenate()函数怎么用?
python中numpy.concatenate()函数怎么用?本文教程操作环境:windows7系统、Python3.9.1,DELLG3电脑。1、numpy.concatenate函数主要作用:沿详情>>
2023-11-13 23:20:14python如何捕获正在运行的CMD窗口内容?
python如何捕获正在运行的CMD窗口内容?本文介绍需要捕获已经在运行的CMD窗口内容,并且需要根据指定输出内容来判断下一步的行动(输入指定内容)...详情>>
2023-11-13 20:46:21pythonpip是什么
python的pip是什么一、pip是什么pip是Python的包管理器。这意味着它是一个工具,允许你安装和管理不属于标准库的其他库和依赖。软件包管理极其...详情>>
2023-11-13 19:36:56pythontruncate是什么
pythontruncate是什么1、说明从文件的首行首字符开始截断,截断文件为n个字符;无n表示从当前位置起截断;截断之后n后面的所有字符被删除。2、语...详情>>
2023-11-13 16:42:48