創(chuàng)新互聯(lián)www.cdcxhl.cn八線動(dòng)態(tài)BGP香港云服務(wù)器提供商,新人活動(dòng)買多久送多久,劃算不套路!
公司主營業(yè)務(wù):網(wǎng)站制作、成都網(wǎng)站建設(shè)、移動(dòng)網(wǎng)站開發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競(jìng)爭(zhēng)能力。成都創(chuàng)新互聯(lián)公司是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對(duì)我們的高要求,感謝他們從不同領(lǐng)域給我們帶來的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會(huì)用頭腦與智慧不斷的給客戶帶來驚喜。成都創(chuàng)新互聯(lián)公司推出龍井免費(fèi)做網(wǎng)站回饋大家。小編給大家分享一下帶有yield的函數(shù)在Python中的使用方式,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去探討吧!
?yield在函數(shù)中的功能類似于return,不同的是yield每次返回結(jié)果之后函數(shù)并沒有退出,而是每次遇到y(tǒng)ield關(guān)鍵字后返回相應(yīng)結(jié)果,并保留函數(shù)當(dāng)前的運(yùn)行狀態(tài),等待下一次的調(diào)用。如果一個(gè)函數(shù)需要多次循環(huán)執(zhí)行一個(gè)動(dòng)作,并且每次執(zhí)行的結(jié)果都是需要的,這種場(chǎng)景很適合使用yield實(shí)現(xiàn)。
包含yield的函數(shù)成為一個(gè)生成器,生成器同時(shí)也是一個(gè)迭代器,支持通過next方法獲取下一個(gè)值。
yield基本使用:
def func(): for i in range(0,3): yield i f = func() f.next() f.next()
對(duì)于生成器,當(dāng)調(diào)用函數(shù)next時(shí),將獲取生成器yield后邊表達(dá)式的值;
當(dāng)執(zhí)行完最后一次循環(huán)后,結(jié)束yield語句,生成器會(huì)拋出StopIteration異常;
除了next函數(shù),生成器還支持send函數(shù)。該函數(shù)可以向生成器傳遞參數(shù)。
def func(n): for i in range(0,n): val = yield i print val f = func(10) f.next() #f.send(None) f.send(2) f.send(10) print f.next()
看完了這篇文章,相信你對(duì)帶有yield的函數(shù)在Python中的使用方式有了一定的了解,想了解更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道,感謝各位的閱讀!