本文教程操作环境: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来明确生成器的使用。同时,我们可以发现生成器在自动处理和调用方面非常有用。