python生成器函數的執行過程
阿新 • • 發佈:2017-10-28
python 生成器
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後面的內容,掛起,繼而重復步驟"""
本文出自 “hell喲” 博客,請務必保留此出處http://hellyou.blog.51cto.com/12853112/1976888
python生成器函數的執行過程