通常大家遇到不會內容,第一想法肯定是進行搜索查找了,然而所有標題叫簡單易懂并非真的如此,我在查詢pythonyield就是,既然無簡單易懂內容,小編就幫大家集合整理出來。
結合網上教學內容,指向yield就是迭代器,如果對yield并理解,大家暫且可以把yield理解成“return”,其使用方法與return大致相同,但含義有區別:
return(沒有return關鍵字的函數可認為returnNone)關鍵字的意思就是將控制權交還調用者。而yield可翻譯為產出、產生,其控制權的轉移是暫時的,可以理解為保存狀態+return,當再次調用時,可從保存狀態中恢復數據,繼續進行相關操作。
參考代碼:
defg():
print('A')
yield1
print('B')
yield2
print('C')
foriing():
print(i)
運行結果:
A
1
B
2
C
總結分析:
foriing()執行g()
-->print('A')打印A
-->yield1返回值1并保存工作狀態,這里i=1
-->print(i)打印1
-->繼續foriing()執行g(),自yield1保存的工作狀態下恢復繼續執行print('B'),打印B
-->yield2返回值2并保存工作狀態,這里i=2
-->print(i)打印2
-->繼續foriing()執行g(),自yield2保存的工作狀態下恢復繼續執行print('C'),打印C
-->沒有yield返回值,因此for操作接受不到值,停止操作
看以上內容你可能就明白yield和return的關系和區別了,帶yield的函數是一個生成器,而不是一個函數了,這個生成器有一個函數就是next函數,next就相當于“下一步”生成哪個數,這一次的next開始的地方是接著上一次的next停止的地方執行的,所以調用next的時候,只是接著上一步停止的地方開始,然后遇到yield后,return出要生成的數,此步就結束。
相信大部分小伙伴已經弄明白了吧,大家可以根據以上操作,自己嘗試看看呢
以上內容為大家介紹了pythonyield的用法,希望對大家有所幫助,如果想要了解更多Python相關知識,請關注IT培訓機構:千鋒教育。