欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python中的yield使用方法

 更新時(shí)間:2014年02月11日 14:31:58   作者:  
這篇文章主要介紹了python中的yield使用方法,需要的朋友可以參考下

今天在看其他同事的代碼時(shí),發(fā)現(xiàn)一個(gè)沒使用過的python關(guān)鍵字 :yield

      先問了一下同事,聽他說了幾句,有個(gè)模糊的印象,僅僅是模糊而已。于是自己去搜搜資料看??戳税胩?,逐漸清晰了。不過在工作機(jī)制以及應(yīng)用上還是有點(diǎn)迷茫。嗯,先把初始接觸的印象記下來吧。

      yield 簡(jiǎn)單說來就是一個(gè)生成器(Generator)。生成器是這樣一個(gè)函數(shù):它記住上一次返回時(shí)在函數(shù)體中的位置。對(duì)生成器函數(shù)的第二次(或第 n 次)調(diào)用跳轉(zhuǎn)至該函數(shù)中間,而上次調(diào)用的所有局部變量都保持不變。

      你看到某個(gè)函數(shù)包含了yield,這意味著這個(gè)函數(shù)已經(jīng)是一個(gè)Generator,它的執(zhí)行會(huì)和其他普通的函數(shù)有很多不同。

      可能看到這里還是迷迷糊糊,先看一些實(shí)例吧:

復(fù)制代碼 代碼如下:

      def test( data_list ):

            for x in data_list:

                 yield x + 1

      data = [1,2,3,4]

      for y in test( data ):

           print y


      則輸出結(jié)果為:

      2       3       4        5

      另外一種用法:

      handle = test(data)

      handle.next()     輸出  2

      handle.next()     輸出  3

      handle.next()     輸出  4

      handle.next()     輸出  5

      handle.next()     則會(huì)報(bào)錯(cuò)

      這只是 yield 的初步印象,接下來慢慢摸索吧。

相關(guān)文章

最新評(píng)論