在python中使用了yield 的函数称为生成器。
跟普通函数不同,生成器是一个返回迭代器的函数,只能用于迭代操作
在调用生成器运行的过程中,每次遇到 yield 时函数会暂停并保存当前所有的运行信息,返回 yield 的值, 并在下一次执行 next() 方法时从当前位置继续运行。
除了创建和保存程序状态的自动方法,当生成器终结时,还会自动抛出StopIteration异常。
#生成器
import sys
def Back(data):
for i in range(len(data)-1, -1, -1):
yield data[i]
b = Back("131415")
while True:
try:
print(next(b))
except StopIteration:
sys.exit(1)