在Python中,yield
是一個關鍵字,用于定義一個生成器函數。生成器函數可以通過使用yield
來產生一個值,并且在每次產生值后,暫停執行,保存函數的當前狀態。然后,當再次需要生成值時,可以從上次暫停的地方繼續執行。
下面是一個簡單的例子,展示了如何使用yield
來定義一個生成器函數:
def my_generator():
yield 1
yield 2
yield 3
# 創建一個生成器對象
gen = my_generator()
# 使用next()函數獲取生成器的下一個值
print(next(gen)) # 輸出:1
print(next(gen)) # 輸出:2
print(next(gen)) # 輸出:3
# 當沒有更多的值可以生成時,會引發StopIteration異常
在上面的例子中,my_generator
函數是一個生成器函數,它通過使用yield
關鍵字產生了三個值:1、2和3。當調用next(gen)
時,生成器函數會從上次暫停的地方繼續執行,生成下一個值,并返回給調用者。當沒有更多的值可以生成時,會引發StopIteration異常。
此外,生成器函數還可以使用for
循環來遍歷生成器產生的值,而不需要顯式調用next()
函數。例如:
for value in my_generator():
print(value)
上面的代碼會依次輸出1、2和3。