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