天天看点

yield的理解 - Python

​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="")      

继续阅读