溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

在python中使用yield時需要注意哪些事項

發(fā)布時間:2021-04-26 15:35:55 來源:億速云 閱讀:184 作者:Leah 欄目:編程語言

在python中使用yield時需要注意哪些事項?相信很多沒有經(jīng)驗(yàn)的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。

Python的優(yōu)點(diǎn)有哪些

1、簡單易用,與C/C++、Java、C# 等傳統(tǒng)語言相比,Python對代碼格式的要求沒有那么嚴(yán)格;2、Python屬于開源的,所有人都可以看到源代碼,并且可以被移植在許多平臺上使用;3、Python面向?qū)ο?,能夠支持面向過程編程,也支持面向?qū)ο缶幊蹋?、Python是一種解釋性語言,Python寫的程序不需要編譯成二進(jìn)制代碼,可以直接從源代碼運(yùn)行程序;5、Python功能強(qiáng)大,擁有的模塊眾多,基本能夠?qū)崿F(xiàn)所有的常見功能。

1、說明

一旦在函數(shù)中使用了yield,它就變成了生成函數(shù)。但 yield 不能和 return 共存,并且 yield 只能定義在函數(shù)中。當(dāng)我們調(diào)用這個函數(shù)時,函數(shù)內(nèi)部的代碼不會立即執(zhí)行,所以函數(shù)只是返回一個生成器對象。當(dāng)我們用for迭代它時,函數(shù)中的代碼將被執(zhí)行。

2、實(shí)例

python3 新增了 yield from 語法,它相當(dāng)于 for + yield。比如:

yield from a()
 
# 等同于下面
for i in a():
    yield i

拓展:yield 和 return 的區(qū)別:

return 的時候這個函數(shù)的局部變量都被銷毀了;

所有 return 是得到所有結(jié)果之后的返回;

yield 是產(chǎn)生了一個可以恢復(fù)的函數(shù)(生成器),恢復(fù)了局部變量;

生成器只有在調(diào)用 .next() 時才運(yùn)行函數(shù)生成一個結(jié)果。

看完上述內(nèi)容,你們掌握在python中使用yield時需要注意哪些事項的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI