為什么叫生成器函數?因為它隨著時間的推移生成了一個數值隊列。一般的函數在執行完畢之后會返回一個值然后退出,但是生成器函數會自動掛起,然后重新拾起急需執行,他會利用yield關鍵字關起函數,給調用者返回一個值,同時保留了當前的足夠多的狀態,可以使函數繼續執行,生成器和迭代協議是密切相關的,迭代器都有一個__next__()__成員方法,這個方法要么返回迭代的下一項,要買引起異常結束迭代。
#函數有了yield之后,函數名+()就變成了生成器
#return在生成器中代表生成器的中止,直接報錯
#next的作用是喚醒并繼續執行
#send的作用是喚醒并繼續執行,發送一個信息到生成器內部
'''生成器'''
defcreate_counter(n):
print("create_counter")
whileTrue:
yieldn
print("incrementn")
n+=1
gen=create_counter(2)
print(gen)
print(next(gen))
print(next(gen))
結果:
create_counter
2
incrementn
3
Processfinishedwithexitcode0
以上內容為大家介紹了python生成器函數,希望對大家有所幫助,如果想要了解更多Python相關知識,請關注IT培訓機構:千鋒教育。http://www.kei0345678.cn/