生成器是一种特殊的函数,它会返回一个迭代器。定义一个生成器函数同定义一个普通函数没有什么区别,特殊之处在于生成器函数内部会包含yield表达式,专门用于生成一个序列。当一个生成器函数被调用时,它会返回一个迭代器。之后就由这个迭代器来控制生成器函数的执行。当生成器函数被调用后,首先会执行到第一个yield表达式处,然后会将生成器函数挂起,将yield生成的表达式的值返回给生成器函数的调用者。当生成器函数被挂起时,它的所有局部状态都会被保存起来,包括当前绑定的局部变量、指令指针、内部栈和异常处理的状态。当调用迭代器的方法时,一般都是调用next()方法,将会恢复生成器函数的执行,并且是从上次被挂起的地方继续执行,直到遇到另外一次yield调用,生成器函数将再次被挂起。
相关文章
- Python3中的“加和”函数
- Python 学习 第七篇:函数1(定义、调用和变量的作用域)
- Python 中的for,if-else和while语句
- python的三个函数(eval、exec、complie)和python版RMI
- python3.x和python2.x的translate与maketrans函数使用差异
- python 2.x和3.x中maketrans和translate函数的使用
- python 装饰器 对类和函数的装饰
- python is、==区别;with;gil;python中tuple和list的区别;Python 中的迭代器、生成器、装饰器
- Python中的上下文管理器和with语句
- python 条件,循环和其他语句的学习笔记