Python使用迭代器捕獲Generator返回值的方法
本文實(shí)例講述了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ìn)階經(jīng)典教程》及《Python文件與目錄操作技巧匯總》
希望本文所述對大家Python程序設(shè)計(jì)有所幫助。
相關(guān)文章
Python機(jī)器學(xué)習(xí)庫scikit-learn入門開發(fā)示例
scikit-learn是一個開源Python語言機(jī)器學(xué)習(xí)工具包,它涵蓋了幾乎所有主流機(jī)器學(xué)習(xí)算法的實(shí)現(xiàn),并且提供了一致的調(diào)用接口。它基于Numpy和scipy等Python數(shù)值計(jì)算庫,提供了高效的算法實(shí)現(xiàn)2022-07-07Python中shutil模塊的學(xué)習(xí)筆記教程
shutil模塊是一種高層次的文件操作工具,類似于高級API,主要強(qiáng)大之處在于其對文件的復(fù)制與刪除操作更是比較支持好。下面這篇文章主要介紹了Python中shutil模塊的相關(guān)教程,需要的朋友可以參考學(xué)習(xí),下面來一起看看吧。2017-04-04Python實(shí)戰(zhàn)之大魚吃小魚游戲的實(shí)現(xiàn)
這篇文章主要介紹了如何利用Python制作一個經(jīng)典游戲之大魚吃小魚,文中的示例代碼講解詳細(xì),對我們學(xué)習(xí)Python有一定幫助,需要的可以參考一下2022-04-04Python動態(tài)可視化模塊Pynimate初體驗(yàn)
Pynimate是python第三方用于動態(tài)可視化的數(shù)據(jù)模塊,是一位專攻?Python?語言的程序員開發(fā)的安裝包。本文將通過幾個簡單的示例,講解一下Pynimate的使用方法,需要的可以參考一下2023-02-02獲取django框架orm query執(zhí)行的sql語句實(shí)現(xiàn)方法分析
這篇文章主要介紹了獲取django框架orm query執(zhí)行的sql語句實(shí)現(xiàn)方法,結(jié)合實(shí)例形式分析了Django框架中orm query執(zhí)行的sql語句獲取方法相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2019-06-06