国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

python中的yield使用方法

2020-02-23 05:09:25
字體:
供稿:網(wǎng)友

今天在看其他同事的代碼時(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í)例吧:
代碼如下:
      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 的初步印象,接下來慢慢摸索吧。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 堆龙德庆县| 东兰县| 五莲县| 竹溪县| 大邑县| 木里| 文昌市| 太仆寺旗| 当雄县| 根河市| 民乐县| 海门市| 当雄县| 抚顺县| 松溪县| 齐齐哈尔市| 温州市| 东源县| 红原县| 贵定县| 谷城县| 靖安县| 德清县| 子洲县| 邹平县| 扶余县| 彰化县| 石阡县| 新巴尔虎右旗| 醴陵市| 彰化县| 滦南县| 宜昌市| 巩义市| 巴楚县| 武夷山市| 永康市| 霍城县| 安阳县| 香河县| 会东县|