Python中yield执行顺序
时间: 2023-11-05 19:26:16 浏览: 114
基于python yield机制的异步操作同步化编程模型
在Python中,使用yield关键字可以将一个函数转换为一个生成器,使得该函数的执行可以被暂停和恢复。当函数中包含yield语句时,该函数就成为了一个生成器函数,执行该函数并不会真正地运行函数体内的代码,而是返回一个生成器对象。
生成器对象可以通过next()函数或者send()函数进行调用,每次调用会从上次暂停的位置继续执行,直到遇到下一个yield语句或者函数结束。
因此,yield的执行顺序如下:
1. 第一次调用生成器对象的时候,执行生成器函数的函数头部分,直到遇到第一个yield语句,返回yield语句后面的值,并将函数暂停,等待下一次调用。
2. 第二次调用生成器对象的时候,从上次暂停的位置继续执行,直到遇到下一个yield语句,返回yield语句后面的值,并将函数再次暂停,等待下一次调用。
3. 重复第二步,直到函数执行完毕或者遇到StopIteration异常。
阅读全文