這篇文章主要介紹了return和yield有哪些區別,具有一定借鑒價值,需要的朋友可以參考下。希望大家閱讀完這篇文章后大有收獲。下面讓小編帶著大家一起了解一下。
創新互聯公司是一家專業的成都網站建設公司,我們專注成都網站制作、成都網站設計、網絡營銷、企業網站建設,賣友情鏈接,一元廣告為企業客戶提供一站式建站解決方案,能帶給客戶新的互聯網理念。從網站結構的規劃UI設計到用戶體驗提高,創新互聯力求做到盡善盡美。
yield:
1、是暫停函數
2、返回值后繼續執行函數體內代碼,
3、返回的是一個迭代器(yield本身是生成器-生成器是用來生成迭代器的);
精髓理解:返回后函數執行暫停
return:
1、是結束函數;
2、返回值后不再執行函數體內代碼.
3、返回的是正常可迭代對象(list,set,dict等具有實際內存地址的存儲對象)
精髓理解:返回后函數執行結束
具體區別:
return:返回結果后,函數不再繼續執行,徹底結束;只執行一次,函數結束
調用方式:函數() 直接執行函數
def func(): start_time = time.time() list = [] for i in range(1, 100000000): list.append(i) end_time = time.time() cost_time = end_time - start_time print(cost_time) return list # 相同的代碼 func() # 函數報錯,meryerror 內存錯誤。
yield:返回結果后,函數不結束,yield返回值后暫停,再次調用時,在暫停的地方繼續執行;可執行多次,直到函數結束
def func(): start_time = time.time() list = [] for i in range(1, 100000000): list.append(i) end_time = time.time() cost_time = end_time - start_time print(cost_time) yield list func() # 隨用隨取,節省內存空間。 next(func())
比較節約內存空間。保存的是生成數據的方式。可以達到隨用隨取的效果。
感謝你能夠認真閱讀完這篇文章,希望小編分享return和yield有哪些區別內容對大家有幫助,同時也希望大家多多支持創新互聯,關注創新互聯行業資訊頻道,遇到問題就找創新互聯,詳細的解決方法等著你來學習!
新聞名稱:return和yield有哪些區別
新聞來源:http://vcdvsql.cn/article16/pdhdgg.html
成都網站建設公司_創新互聯,為您提供電子商務、網頁設計公司、自適應網站、網站策劃、網站改版、品牌網站設計
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯