当前位置: 首页 > 图灵资讯 > 行业资讯> python生成器的原理探究

python生成器的原理探究

来源:图灵python
时间: 2024-09-09 10:23:39

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

1、概念

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

2、组成

至少有一个yield语句。

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

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

实现迭代协议。

3、原理分析

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

#Generatorfornextpoweroftwo.
defNextPowTwo(max_ele):
n=0
whilen<max_ele:
yield2*n
n+=1
raiseStopIteration


obj=NextPowTwo(20)
print(obj.next())
print(obj.next())
print(obj.next())
print(obj.next())

在对于在python学习时,很容易将生成器与其他知识点混淆。事实上,判断是否使用yield函数是最简单的方法。

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