python中yield的使用注意
(推薦操作系統(tǒng):windows7系統(tǒng)、Python3.9.1、DELLG3電腦。)
1、說明
一旦在函數(shù)中使用了yield,它就變成了生成函數(shù)。但yield不能和return共存,并且yield只能定義在函數(shù)中。當(dāng)我們調(diào)用這個(gè)函數(shù)時(shí),函數(shù)內(nèi)部的代碼不會(huì)立即執(zhí)行,所以函數(shù)只是返回一個(gè)生成器對象。當(dāng)我們用for迭代它時(shí),函數(shù)中的代碼將被執(zhí)行。
2、實(shí)例
python3新增了yieldfrom語法,它相當(dāng)于for+yield。比如:
yieldfroma()
#等同于下面
foriina():
yieldi
拓展:yield和return的區(qū)別:
return的時(shí)候這個(gè)函數(shù)的局部變量都被銷毀了;
所有return是得到所有結(jié)果之后的返回;
yield是產(chǎn)生了一個(gè)可以恢復(fù)的函數(shù)(生成器),恢復(fù)了局部變量;
生成器只有在調(diào)用.next()時(shí)才運(yùn)行函數(shù)生成一個(gè)結(jié)果。
以上就是python中yield的使用注意,希望能對大家有所幫助。更多Python學(xué)習(xí)教程請關(guān)注IT培訓(xùn)機(jī)構(gòu):千鋒教育。