日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

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

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

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

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

1、__next__

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

該方法會被 for 以及內(nèi)置函數(shù) next 隱式的調(diào)用。

2、send

繼續(xù)執(zhí)行生成器(注意是繼續(xù)而不是第一次執(zhí)行),并發(fā)送一個(gè)值到生成器函數(shù)。send 方法的參數(shù)是下一個(gè) yield 語句的返回值,前提是 yield 語句中要事先接收它傳遞的參數(shù)。如果使用該方法啟動(也就是第一次執(zhí)行)生成器,必須使用 None 作為其參數(shù),因?yàn)榇藭r(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生成器調(diào)用方法引發(fā)異常,希望能對大家有所幫助。更多Python學(xué)習(xí)指路:創(chuàng)新互聯(lián)python教程


網(wǎng)站名稱:創(chuàng)新互聯(lián)Python教程:python生成器調(diào)用方法引發(fā)異常
本文路徑:http://m.5511xx.com/article/dpsdcch.html