日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側工具欄

新聞中心

這里有您想知道的互聯(lián)網營銷解決方案
創(chuàng)新互聯(lián)Python教程:python生成器調用方法引發(fā)異常

(推薦操作系統(tǒng):windows7系統(tǒng)、Python 3.9.1、DELL G3電腦。)

成都創(chuàng)新互聯(lián)-專業(yè)網站定制、快速模板網站建設、高性價比古縣網站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式古縣網站制作公司更省心,省錢,快速模板網站建設找我們,業(yè)務覆蓋古縣地區(qū)。費用合理售后完善,十多年實體公司更值得信賴。

注意,在生成器已經執(zhí)行時調用下面的任何生成器方法會引發(fā) ValueError 異常。

1、__next__

開始執(zhí)行一個生成器或者從上一次 yield 語句后繼續(xù)執(zhí)行。當使用該方法繼續(xù)(注意是繼續(xù)而不是第一次執(zhí)行)時,那么當前 yield 的返回值為 None,直到執(zhí)行到下一次的 yield 語句時,yield 語句后的表達式的結果才會返回給調用者。當?shù)鹘Y束時會拋出 StopIteration 異常。

該方法會被 for 以及內置函數(shù) next 隱式的調用。

2、send

繼續(xù)執(zhí)行生成器(注意是繼續(xù)而不是第一次執(zhí)行),并發(fā)送一個值到生成器函數(shù)。send 方法的參數(shù)是下一個 yield 語句的返回值,前提是 yield 語句中要事先接收它傳遞的參數(shù)。如果使用該方法啟動(也就是第一次執(zhí)行)生成器,必須使用 None 作為其參數(shù),因為此時還沒有 yield 能夠接收它的值(畢竟接收該值的語句還沒有開始執(zhí)行)。

def fn():
    a = 0
    while True:
        a += 1
        r = yield # r 就是接收 send 參數(shù)的變量
        print('{} => {}'.format(a, r))
 
>>> f = fn()
>>> f.send('a') # 不傳遞 None 的后果
Traceback (most recent call last):
  File "/opt/python3/lib/python3.6/site-packages/IPython/core/interactiveshell.py", line 2910, in run_code
    exec(code_obj, self.user_global_ns, self.user_ns)
  File "", line 1, in 
    f.send('a')
TypeError: can't send non-None value to a just-started generator
>>> next(f) # 也可以不傳遞 None 而是使用 next 執(zhí)行,兩種方式都可以
>>> f.send('a')
1 => a
>>> f.send('b')
2 => b

以上就是python生成器調用方法引發(fā)異常,希望能對大家有所幫助。更多Python學習指路:創(chuàng)新互聯(lián)python教程


文章標題:創(chuàng)新互聯(lián)Python教程:python生成器調用方法引發(fā)異常
文章來源:http://www.dlmjj.cn/article/dpsdcch.html