python生成器函數的第一次理解,後面會進行更正和補充 #python生成器函數的第一次理解,後面會進行更正和補充 #@author :王志超 #qq:1764681289 歡迎交流 def gene(): for i in range(20): result = yield i print(result) a = gene() print(next(a)) print(next(a)) print(a.send("brt")) """F:\py\python.exe C:/Users/hp/PycharmProjects/untitled1/test.py 0 None 1 brt 2""" def gene(): for i in range(20): result = yield 8 print(result) a=gene() print(next(a)) print(next(a)) print(a.send("brt")) """F:\py\python.exe C:/Users/hp/PycharmProjects/untitled1/test.py 8 None 8 brt 8""" """比較結果,大體說明一下生成器函數的調用過程。 0、我們認爲,x = yield a 分兩步完成,第一步輸出a,掛起;第二步,外部傳入參數給yield,x引用yield裏面的值 1、執行函數體,到第一個yield,此時,輸出yield後面的內容,並掛起,保存狀態。 2、當再一次使用next()方法時,函數從上次掛起的狀態繼續執行,”next()方法不傳入參數給yield,則yield爲none (我們暫時理解爲yield的值或者它保存的值爲none),則result爲none,執行下面的函數 3、到下一次yield的時候,輸出yield後面的內容,掛起,繼而重複步驟"""
python生成器函數的執行過程
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.