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






評論(0)


暫無數(shù)據(jù)
推薦帖子
0條評論
0條評論
0條評論