新聞中心
通常大家遇到不會(huì)內(nèi)容,第一想法肯定是進(jìn)行搜索查找了,然而所有標(biāo)題叫簡單易懂并非真的如此,我在查詢pythpon yield就是,既然無簡單易懂內(nèi)容,小編就幫大家集合整理出來。

專注于為中小企業(yè)提供成都網(wǎng)站設(shè)計(jì)、網(wǎng)站制作服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)磐石免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了成百上千企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。
結(jié)合網(wǎng)上教學(xué)內(nèi)容,指向yield就是迭代器,如果對yield并理解,大家暫且可以把yield理解成“return”,其使用方法與return大致相同,但含義有區(qū)別:
return(沒有return關(guān)鍵字的函數(shù)可認(rèn)為return None)關(guān)鍵字的意思就是將控制權(quán)交還調(diào)用者。而yield可翻譯為產(chǎn)出、產(chǎn)生,其控制權(quán)的轉(zhuǎn)移是暫時(shí)的,可以理解為保存狀態(tài)+return,當(dāng)再次調(diào)用時(shí),可從保存狀態(tài)中恢復(fù)數(shù)據(jù),繼續(xù)進(jìn)行相關(guān)操作。
參考代碼:
def g():
print('A')
yield 1
print('B')
yield 2
print('C')
for i in g():
print(i)
運(yùn)行結(jié)果:
A 1 B 2 C
總結(jié)分析:
for i in g()執(zhí)行g(shù)()
-->print('A')打印A
-->yield 1返回值1并保存工作狀態(tài),這里i=1
-->print(i)打印1
-->繼續(xù)for i in g()執(zhí)行g(shù)(),自yield 1保存的工作狀態(tài)下恢復(fù)繼續(xù)執(zhí)行print('B'),打印B
-->yield 2返回值2并保存工作狀態(tài),這里i=2
-->print(i)打印2
-->繼續(xù)for i in g()執(zhí)行g(shù)(),自yield 2保存的工作狀態(tài)下恢復(fù)繼續(xù)執(zhí)行print('C'),打印C
-->沒有yield返回值,因此for操作接受不到值,停止操作
看以上內(nèi)容你可能就明白yield和return的關(guān)系和區(qū)別了,帶yield的函數(shù)是一個(gè)生成器,而不是一個(gè)函數(shù)了,這個(gè)生成器有一個(gè)函數(shù)就是next函數(shù),next就相當(dāng)于“下一步”生成哪個(gè)數(shù),這一次的next開始的地方是接著上一次的next停止的地方執(zhí)行的,所以調(diào)用next的時(shí)候,只是接著上一步停止的地方開始,然后遇到yield后,return出要生成的數(shù),此步就結(jié)束。
相信大部分小伙伴已經(jīng)弄明白了吧,大家可以根據(jù)以上操作,自己嘗試看看呢~如需了解更多python實(shí)用知識,點(diǎn)擊進(jìn)入PyThon學(xué)習(xí)網(wǎng)教學(xué)中心。
分享標(biāo)題:創(chuàng)新互聯(lián)Python教程:yield是什么意思?pythonyield的用法
當(dāng)前鏈接:http://www.dlmjj.cn/article/dpipdjs.html


咨詢
建站咨詢
