2018-10-23
閱讀量:
884
yield 怎么用?
看別人代碼時(shí)看到y(tǒng)ield,這關(guān)鍵字是干啥的?
yield是python中比較高級(jí)的用法,用來(lái)構(gòu)造生成器:generator 。什么是生成器?創(chuàng)建一個(gè)包含百萬(wàn)個(gè)元素的列表,占用很大的存儲(chǔ)空間,而且后面的元素有可能不經(jīng)常用到。
生成器不是馬上構(gòu)建出所有元素,而是根據(jù)公式推算出下一個(gè)元素,用到哪算到哪,如果元素很多時(shí)這樣很節(jié)省內(nèi)存空間。
如果一個(gè)函數(shù)定義中包含yield
關(guān)鍵字,那么這個(gè)函數(shù)就不再是一個(gè)普通函數(shù),而是一個(gè)generator:
generator和函數(shù)的執(zhí)行流程不一樣。函數(shù)是順序執(zhí)行,遇到return
語(yǔ)句或者最后一行函數(shù)語(yǔ)句就返回。而變成generator的函數(shù),在每次調(diào)用next()
的時(shí)候執(zhí)行,遇到yield
語(yǔ)句返回,再次執(zhí)行時(shí)從上次返回的yield
語(yǔ)句處繼續(xù)執(zhí)行。
對(duì)于初學(xué)者只需理解有yield的這個(gè)函數(shù)是生成器,可迭代的即可。






評(píng)論(0)


暫無(wú)數(shù)據(jù)
CDA考試動(dòng)態(tài)
CDA報(bào)考指南
推薦帖子
0條評(píng)論
0條評(píng)論
0條評(píng)論