解析python生成器函式的呼叫

joytoy發表於2021-09-11

解析python生成器函式的呼叫

生成器可以是在工作完成後自動繼續工作嗎?這是大家給小編出的問題,關於生成器,其實它在工作完以後,只能去重新建立一個生成器物件,這樣才能保證工作的正常運轉,口說無憑,我給大家走一遍流程,大家可以仔細觀察就理解明白了。

觀察生成器函式執行過程

import random
def genRandom():
#yield關鍵字
r = random.randint(0,1000)
print('befor yield')
yield r
print('after yield')
genfunc = genRandom()

呼叫:

print(next(genfunc))
結果:沒有執行:print('after yield')
befor yield
726

分析:呼叫yield之後,返回產生隨機數:314,然後停止

從上述內容我們可以看出,執行yield下一條語句,並報異常,這是因為透過異常告知呼叫者,生成器執行結束,那麼如果想要再次執行生成器,必須重新建立生成器物件。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/4650/viewspace-2832161/,如需轉載,請註明出處,否則將追究法律責任。

相關文章