Python使用迭代器捕獲Generator返回值的方法
本文實例講述了Python使用迭代器捕獲Generator返回值的方法。分享給大家供大家參考,具體如下:
用for循環(huán)調(diào)用generator時,發(fā)現(xiàn)拿不到generator的return語句的返回值。如果想要拿到返回值,必須捕獲StopIteration錯誤,返回值包含在StopIteration的value中:
#!/usr/bin/env python # -*- coding: utf-8 -*- def fib(max): n, a, b = 0, 0, 1 while n < max: yield b a, b = b, a + b n = n + 1 return 'done' # 捕獲Generator的返回值 g = fib(6) while True: try: x=next(g) print('g=',x) except StopIteration as e: print('Generrator return value:', e.value) break
輸出:
g= 1 g= 1 g= 2 g= 3 g= 5 g= 8 Generrator return value: done
更多關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Python函數(shù)使用技巧總結(jié)》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python字符串操作技巧匯總》、《Python入門與進階經(jīng)典教程》及《Python文件與目錄操作技巧匯總》
希望本文所述對大家Python程序設(shè)計有所幫助。
相關(guān)文章
Python機器學(xué)習(xí)庫scikit-learn入門開發(fā)示例
scikit-learn是一個開源Python語言機器學(xué)習(xí)工具包,它涵蓋了幾乎所有主流機器學(xué)習(xí)算法的實現(xiàn),并且提供了一致的調(diào)用接口。它基于Numpy和scipy等Python數(shù)值計算庫,提供了高效的算法實現(xiàn)2022-07-07Python中shutil模塊的學(xué)習(xí)筆記教程
shutil模塊是一種高層次的文件操作工具,類似于高級API,主要強大之處在于其對文件的復(fù)制與刪除操作更是比較支持好。下面這篇文章主要介紹了Python中shutil模塊的相關(guān)教程,需要的朋友可以參考學(xué)習(xí),下面來一起看看吧。2017-04-04Python實戰(zhàn)之大魚吃小魚游戲的實現(xiàn)
這篇文章主要介紹了如何利用Python制作一個經(jīng)典游戲之大魚吃小魚,文中的示例代碼講解詳細(xì),對我們學(xué)習(xí)Python有一定幫助,需要的可以參考一下2022-04-04獲取django框架orm query執(zhí)行的sql語句實現(xiàn)方法分析
這篇文章主要介紹了獲取django框架orm query執(zhí)行的sql語句實現(xiàn)方法,結(jié)合實例形式分析了Django框架中orm query執(zhí)行的sql語句獲取方法相關(guān)實現(xiàn)技巧,需要的朋友可以參考下2019-06-06