yield
关键字除了有return的意思, 还有暂存的意思. 运行到yield时, 会返回当前的值, 然后保存现在的记录. 当再次运行该函数式, 继续上次yield结束的位置开始运行.
理解不深, 仅供参考
实例一
def foo(num):
print("starting...")
while num < 10:
num = num + 1
yield num
# debug看运行顺序 即可
for n in foo(0):
print(n)
实例二
def gen(n):
for i in range(n):
yield i ** 2
for i in gen(5):
print(i, " ", end="")