如何傳遞yield

有時候我們需要把一個函數(shù)的yield結(jié)果傳遞給另一個函數(shù)冀自,怎么實現(xiàn)呢?

先說一下我研究的結(jié)果:

需要在中間函數(shù)中遍歷上一個函數(shù)的結(jié)果,然后逐條yield調(diào)用猿诸。
例如下面的fun3() 就是可以傳遞的yield饼暑。

源碼例子1:test_yield2.py for python2.x


def fun1():
    for i in range(1, 10):
        yield i


def fun2():
    yield fun1()


def fun3():
    f = fun1()
    has_next = True
    while has_next:
        try:
            val = f.next()
            print "fun3 got %d" % val
            yield val
        except StopIteration, e:
            has_next = False
            print " fun3    Finish!   "

f_tested = fun3()
has_next = True
while has_next:
    try:
        val = f_tested.next()
        print val
    except StopIteration, e:
        has_next = False
        print "     Finish!   "

源碼例子2:test_yield3.py for python3.x

def fun1():
    for i in range(1, 10):
        yield i


def fun2():
    yield fun1()


def fun3():
    f = fun1()
    for item in f:
        print("fun3 got %d" % item)
        yield item


f_tested = fun3()
has_next = True

for item in f_tested:
    print(item)

print ("     Finish!   ")

f_tested = fun1()時的輸出

$ python testYield.py 
1
2
3
4
5
6
7
8
9
     Finish!   

f_tested = fun2()時的輸出

$ python test_yield.py 
<generator object fun1 at 0x10efeab40>
     Finish!   

f_tested = fun3()時的輸出

$ python test_yield.py 
fun3 got 1
1
fun3 got 2
2
fun3 got 3
3
fun3 got 4
4
fun3 got 5
5
fun3 got 6
6
fun3 got 7
7
fun3 got 8
8
fun3 got 9
9
 fun3    Finish!   
     Finish!   
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末稳析,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子弓叛,更是在濱河造成了極大的恐慌彰居,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,542評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件撰筷,死亡現(xiàn)場離奇詭異陈惰,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)毕籽,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,822評論 3 394
  • 文/潘曉璐 我一進(jìn)店門抬闯,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人关筒,你說我怎么就攤上這事溶握。” “怎么了蒸播?”我有些...
    開封第一講書人閱讀 163,912評論 0 354
  • 文/不壞的土叔 我叫張陵奈虾,是天一觀的道長。 經(jīng)常有香客問我廉赔,道長肉微,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,449評論 1 293
  • 正文 為了忘掉前任蜡塌,我火速辦了婚禮碉纳,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘馏艾。我一直安慰自己劳曹,他們只是感情好奴愉,可當(dāng)我...
    茶點故事閱讀 67,500評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著铁孵,像睡著了一般锭硼。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上蜕劝,一...
    開封第一講書人閱讀 51,370評論 1 302
  • 那天檀头,我揣著相機(jī)與錄音,去河邊找鬼岖沛。 笑死暑始,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的婴削。 我是一名探鬼主播廊镜,決...
    沈念sama閱讀 40,193評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼唉俗!你這毒婦竟也來了嗤朴?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,074評論 0 276
  • 序言:老撾萬榮一對情侶失蹤虫溜,失蹤者是張志新(化名)和其女友劉穎播赁,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體吼渡,經(jīng)...
    沈念sama閱讀 45,505評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,722評論 3 335
  • 正文 我和宋清朗相戀三年乓序,在試婚紗的時候發(fā)現(xiàn)自己被綠了寺酪。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,841評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡替劈,死狀恐怖寄雀,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情陨献,我是刑警寧澤盒犹,帶...
    沈念sama閱讀 35,569評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站眨业,受9級特大地震影響急膀,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜龄捡,卻給世界環(huán)境...
    茶點故事閱讀 41,168評論 3 328
  • 文/蒙蒙 一卓嫂、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧聘殖,春花似錦晨雳、人聲如沸行瑞。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,783評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽血久。三九已至,卻和暖如春帮非,著一層夾襖步出監(jiān)牢的瞬間氧吐,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,918評論 1 269
  • 我被黑心中介騙來泰國打工喜鼓, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留副砍,地道東北人。 一個月前我還...
    沈念sama閱讀 47,962評論 2 370
  • 正文 我出身青樓庄岖,卻偏偏與公主長得像豁翎,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子隅忿,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,781評論 2 354

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

  • 上一篇介紹了Promise異步編程心剥,可以很好地回避回調(diào)地獄。但Promise的問題是背桐,不管什么樣的異步操作优烧,被Pr...
    張歆琳閱讀 1,440評論 0 13
  • 感恩快遞小哥送來給女兒買的的鞋子,女兒很喜歡喜歡链峭! 感恩兒子找東西把家里找東西畦娄,把家里弄得很凌亂,...
    靜若處子閱讀 154評論 0 0
  • 大喬是我的大學(xué)學(xué)長,一個在學(xué)欣混的風(fēng)生水起驳癌,在職場過得洋洋得意的家伙。 這家伙九年前在某牛哄哄的五十強(qiáng)企業(yè)辭職役听,和...
    董墨冉閱讀 1,127評論 1 7
  • 你是誰颓鲜,取決于你選擇是誰 好了,沐浴焚香完畢典予。開始寫作甜滨。 創(chuàng)業(yè)互助會,今天下午兩點開始 四個月前瘤袖,創(chuàng)業(yè)互助會由李敏...
    譚皓勻閱讀 188評論 0 0