通過實例簡單了解python yield使用方法
實例代碼如下
def demo(): print('開始執(zhí)行...') while 1: res = yield ’這是返回值’ print('res:',res)d1 = demo()print(d1)print(next(d1))print('*'*20)print(next(d1))
執(zhí)行結(jié)果如下:
開始執(zhí)行...這是返回值********************res: None這是返回值
代碼解釋,個人理解,說得不對希望能夠點出:
d1 = demo();生成一個對象,不會輸出任何內(nèi)容
print(d1); 這里不輸入任何內(nèi)容,因為程序第一次遇到y(tǒng)ield就暫停了,即使yield前面有輸出語句,一樣給輸出
print(next(d1)); 程序會接著yield繼續(xù)執(zhí)行,第二次遇到y(tǒng)ield,return“這是返回值”,加起來就會會輸出開始執(zhí)行...這是返回值
print(next(d1));再次執(zhí)行next(d1),相當于第三遇到y(tǒng)ield,因為上一步相當于被return,res并沒有賦值,所以為None,繼續(xù)執(zhí)行while,第四次遇到y(tǒng)ield,輸出“這是返回值”
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. python共軛梯度法特征值迭代次數(shù)討論2. 利用FastReport傳遞圖片參數(shù)在報表上展示簽名信息的實現(xiàn)方法3. H5頁面使用audio標簽播放音頻4. ASP.NET MVC視圖頁使用jQuery傳遞異步數(shù)據(jù)的幾種方式詳解5. CSS3使用過度動畫和緩動效果案例講解6. ASP.NET MVC通過勾選checkbox更改select的內(nèi)容7. react axios 跨域訪問一個或多個域名問題8. 詳解php如何合并身份證正反面圖片為一張圖片9. AJAX實現(xiàn)省市縣三級聯(lián)動效果10. XHTML 1.0:標記新的開端
