Python使用迭代器捕獲Generator返回值的方法

NO IMAGE

本文例項講述了Python使用迭代器捕獲Generator返回值的方法。分享給大家供大家參考,具體如下:

用for迴圈呼叫generator時,發現拿不到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

更多關於Python相關內容感興趣的讀者可檢視本站專題:《Python函式使用技巧總結》、《Python資料結構與演算法教程》、《Python字串操作技巧彙總》、《Python入門與進階經典教程》及《Python檔案與目錄操作技巧彙總

希望本文所述對大家Python程式設計有所幫助。

您可能感興趣的文章:

python的迭代器與生成器例項詳解深入講解Python中的迭代器和生成器python迭代器與生成器詳解舉例講解Python中的迭代器、生成器與列表解析用法Python的迭代器和生成器使用例項Python中的迭代器與生成器高階用法解析深入學習python的yield和generatorpython生成器generator用法例項分析Python生成器(Generator)詳解Python 詳解基本語法_函式_返回值Python函式返回值例項分析Python中用函式作為返回值和實現閉包的教程shell指令碼中執行python指令碼並接收其返回值的例子