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