python生成器調(diào)用方法引發(fā)異常
python生成器調(diào)用方法引發(fā)異常
(推薦操作系統(tǒng):windows7系統(tǒng)、Python3.9.1、DELLG3電腦。)
注意,在生成器已經(jīng)執(zhí)行時調(diào)用下面的任何生成器方法會引發(fā)ValueError異常。
1、__next__
開始執(zhí)行一個生成器或者從上一次yield語句后繼續(xù)執(zhí)行。當(dāng)使用該方法繼續(xù)(注意是繼續(xù)而不是第一次執(zhí)行)時,那么當(dāng)前yield的返回值為None,直到執(zhí)行到下一次的yield語句時,yield語句后的表達式的結(jié)果才會返回給調(diào)用者。當(dāng)?shù)鹘Y(jié)束時會拋出StopIteration異常。
該方法會被for以及內(nèi)置函數(shù)next隱式的調(diào)用。
2、send
繼續(xù)執(zhí)行生成器(注意是繼續(xù)而不是第一次執(zhí)行),并發(fā)送一個值到生成器函數(shù)。send方法的參數(shù)是下一個yield語句的返回值,前提是yield語句中要事先接收它傳遞的參數(shù)。如果使用該方法啟動(也就是第一次執(zhí)行)生成器,必須使用None作為其參數(shù),因為此時還沒有yield能夠接收它的值(畢竟接收該值的語句還沒有開始執(zhí)行)。
deffn():
a=0
whileTrue:
a+=1
r=yield#r就是接收send參數(shù)的變量
print('{}=>{}'.format(a,r))
>>>f=fn()
>>>f.send('a')#不傳遞None的后果
Traceback(mostrecentcalllast):
File"/opt/python3/lib/python3.6/site-packages/IPython/core/interactiveshell.py",line2910,inrun_code
exec(code_obj,self.user_global_ns,self.user_ns)
File"",line1,in
f.send('a')
TypeError:can'tsendnon-Nonevaluetoajust-startedgenerator
>>>next(f)#也可以不傳遞None而是使用next執(zhí)行,兩種方式都可以
>>>f.send('a')
1=>a
>>>f.send('b')
2=>b
以上就是python生成器調(diào)用方法引發(fā)異常,希望能對大家有所幫助。更多Python學(xué)習(xí)教程請關(guān)注IT培訓(xùn)機構(gòu):千鋒教育。

猜你喜歡LIKE
相關(guān)推薦HOT
更多>>
python中的filter函數(shù)功能是什么?
python中的filter函數(shù)功能是什么?在python中,面對眾多的數(shù)據(jù),我們要過濾篩選出我們需要的數(shù)據(jù)。python中的filter函數(shù)就是起到了過濾篩選的作...詳情>>
2023-11-10 20:37:27
pythontime模塊是什么
pythontime模塊是什么在python中使用時間,就免不了和time模塊打交道,另外兩個模塊這個暫時先不做介紹。做time模塊的使用上,我們可以用它來對...詳情>>
2023-11-10 15:53:16
python是什么編程語言
python是什么編程語言1、說明是一種面向?qū)ο蟆⒔忉屝陀嬎銠C程序設(shè)計語言,由GuidovanRossum于1989年底發(fā)明,第一個公開發(fā)行版發(fā)行于1991年。Pyt...詳情>>
2023-11-10 15:21:05
python異常處理的兩種技巧
python異常處理的兩種技巧1、傳遞異常有時我們會在捕捉到一個異常后重新引發(fā)它(傳遞異常),實現(xiàn)起來很簡單,使用不帶參數(shù)的raise語句即可。deff...詳情>>
2023-11-10 14:49:39熱門推薦
python中的filter函數(shù)功能是什么?
沸python delattr函數(shù)如何使用?
熱python中pdb模塊怎么用?
熱Python如何截圖保存?
新python?中缺少module怎么辦?
python strftime和strptime的不同分析
python time.strptime的格式化
python中@contextmanager是什么?
python對象的三要素是什么
pythonGIL在Python多線程的應(yīng)用
python如何對多個CSV文件進行讀取
pythonif嵌套命令如何理解?
python對列表進行永久性或臨時排序的方法
python生成器調(diào)用方法引發(fā)異常
技術(shù)干貨







快速通道 更多>>
-
課程介紹
點擊獲取大綱 -
就業(yè)前景
查看就業(yè)薪資 -
學(xué)習(xí)費用
了解課程價格 -
優(yōu)惠活動
領(lǐng)取優(yōu)惠券 -
學(xué)習(xí)資源
領(lǐng)3000G教程 -
師資團隊
了解師資團隊 -
實戰(zhàn)項目
獲取項目源碼 -
開班地區(qū)
查看來校路線