python中的yield

第一次看到y(tǒng)ield是在python學(xué)習(xí)手冊(cè)上茸苇,在python表達(dá)式操作符這一節(jié):
操作符 :yield x 描述:生成器函數(shù)發(fā)送協(xié)議
然后本菜鳥(niǎo)陷入了懵逼,生成器函數(shù)發(fā)送協(xié)議什么鬼。。于是乎,開(kāi)始搜索偷拔。
首先看一個(gè)例子:

def fab(max): 
    n, a, b = 0, 0, 1 
    while n < max: 
        yield b 
        a, b = b, a + b 
        n = n + 1 

 for n in fab(5): 
...     print(n) 
 

打印的結(jié)果為1,1,2,3,5
yield的作用就是把函數(shù)變成一個(gè)迭代器,python解釋器會(huì)將他視為一個(gè)generator,調(diào)用fab(5)不會(huì)執(zhí)行fab函數(shù)莲绰,而是在for循環(huán)時(shí)每次執(zhí)行一次fab函數(shù)欺旧,執(zhí)行到y(tǒng)ield就是返回一個(gè)值(這是有點(diǎn)類似于return),下次迭代時(shí)將從yield下一行開(kāi)始執(zhí)行蛤签。循環(huán)第一次到y(tǒng)ield b時(shí)返回b的值辞友,b為1,a為0,第二次返回b的值震肮,a=1,b為0+1=1称龙,第三次為1+1=2,

函數(shù)有了yield之后,
函數(shù)加()就變成了生成器
函數(shù)中如果有return就代表生成器的中止戳晌,會(huì)直接報(bào)錯(cuò)

生成器有一個(gè)send方法鲫尊,send有一個(gè)參數(shù),該參數(shù)指定的是上一次被掛起的yield語(yǔ)句的返回值沦偎。send()之前要代碼需停在yield那一行疫向,比如先調(diào)用一個(gè)next()方法

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市扛施,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌屹篓,老刑警劉巖疙渣,帶你破解...
    沈念sama閱讀 219,188評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異堆巧,居然都是意外死亡妄荔,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,464評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)谍肤,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)啦租,“玉大人,你說(shuō)我怎么就攤上這事荒揣∨窠牵” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,562評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵系任,是天一觀的道長(zhǎng)恳蹲。 經(jīng)常有香客問(wèn)我,道長(zhǎng)俩滥,這世上最難降的妖魔是什么嘉蕾? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,893評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮霜旧,結(jié)果婚禮上错忱,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好以清,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,917評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布儿普。 她就那樣靜靜地躺著,像睡著了一般玖媚。 火紅的嫁衣襯著肌膚如雪箕肃。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,708評(píng)論 1 305
  • 那天今魔,我揣著相機(jī)與錄音勺像,去河邊找鬼。 笑死错森,一個(gè)胖子當(dāng)著我的面吹牛吟宦,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播涩维,決...
    沈念sama閱讀 40,430評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼殃姓,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了瓦阐?” 一聲冷哼從身側(cè)響起蜗侈,我...
    開(kāi)封第一講書(shū)人閱讀 39,342評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎睡蟋,沒(méi)想到半個(gè)月后踏幻,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,801評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡戳杀,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,976評(píng)論 3 337
  • 正文 我和宋清朗相戀三年该面,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片信卡。...
    茶點(diǎn)故事閱讀 40,115評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡隔缀,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出傍菇,到底是詐尸還是另有隱情猾瘸,我是刑警寧澤,帶...
    沈念sama閱讀 35,804評(píng)論 5 346
  • 正文 年R本政府宣布丢习,位于F島的核電站须妻,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏泛领。R本人自食惡果不足惜荒吏,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,458評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望渊鞋。 院中可真熱鬧绰更,春花似錦瞧挤、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,008評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至徐钠,卻和暖如春癌刽,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背尝丐。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,135評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工显拜, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人爹袁。 一個(gè)月前我還...
    沈念sama閱讀 48,365評(píng)論 3 373
  • 正文 我出身青樓远荠,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親失息。 傳聞我的和親對(duì)象是個(gè)殘疾皇子譬淳,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,055評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容