亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

python生成器generator用法實(shí)例分析

 更新時(shí)間:2015年06月04日 12:25:39   作者:MaxOmnis  
這篇文章主要介紹了python生成器generator用法,實(shí)例分析了python生成器的相關(guān)使用技巧,需要的朋友可以參考下

本文實(shí)例講述了python生成器generator用法。分享給大家供大家參考。具體如下:

使用yield,可以讓函數(shù)生成一個(gè)結(jié)果序列,而不僅僅是一個(gè)值

例如:

def countdown(n): 
  print "counting down" 
  while n>0: 
    yield n #生成一個(gè)n值 
    n -=1 
>>> c = countdown(5) 
>>> c.next() 
counting down 
5 
>>> c.next() 
4 
>>> c.next() 
3 

next()調(diào)用生成器函數(shù)一直運(yùn)行到下一條yield語(yǔ)句為止,此時(shí)next()將返回值傳遞給yield.而且函數(shù)將暫停中止執(zhí)行。再次調(diào)用時(shí)next()時(shí),函數(shù)將繼續(xù)執(zhí)行yield之后的語(yǔ)句。此過(guò)程持續(xù)執(zhí)行到函數(shù)返回為止。

通常不會(huì)像上面那樣手動(dòng)調(diào)用next(), 而是使用for循環(huán),例如:

>>> for i in countdown(5): 
...   print i 
...   
counting down 
5 
4 
3 
2 
1 

next(), send()的返回值都是yield 后面的參數(shù), send()跟next()的區(qū)別是send()是發(fā)送一個(gè)參數(shù)給(yield n)的表達(dá)式,作為其返回值給m, 而next()是發(fā)送一個(gè)None給(yield n)表達(dá)式, 這里需要區(qū)分的是,一個(gè)是調(diào)用next(),send()時(shí)候的返回值,一個(gè)是(yield n)的返回值,兩者是不一樣的.看輸出結(jié)果可以區(qū)分。

def h(n): 
  while n>0: 
    m = (yield n) 
    print "m is "+str(m) 
    n-=1 
    print "n is "+str(n) 
>>> p= h(5) 
>>> p.next() 
5 
>>> p.next() 
m is None 
n is 4 
4 
>>> p.send("test") 
m is test 
n is 3 
3 

希望本文所述對(duì)大家的Python程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • 簡(jiǎn)單了解django處理跨域請(qǐng)求最佳解決方案

    簡(jiǎn)單了解django處理跨域請(qǐng)求最佳解決方案

    這篇文章主要介紹了簡(jiǎn)單了解django處理跨域請(qǐng)求最佳解決方案,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-03-03
  • Python安裝OpenCV的示例代碼

    Python安裝OpenCV的示例代碼

    這篇文章主要介紹了Python安裝OpenCV的示例代碼,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-03-03
  • python對(duì)視頻畫框標(biāo)記后保存的方法

    python對(duì)視頻畫框標(biāo)記后保存的方法

    今天小編就為大家分享一篇python對(duì)視頻畫框標(biāo)記后保存的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-12-12
  • Python爬蟲(chóng)之requests基礎(chǔ)用法詳解

    Python爬蟲(chóng)之requests基礎(chǔ)用法詳解

    這篇文章主要介紹了Python爬蟲(chóng)之requests基礎(chǔ)用法詳解,雖然Python的標(biāo)準(zhǔn)庫(kù)中urllib模塊已經(jīng)包含了平常我們使用的大多數(shù)功能,但是它的API使用起來(lái)讓人感覺(jué)不太友好,而requests庫(kù)使用更簡(jiǎn)潔方便,需要的朋友可以參考下
    2023-10-10
  • Python開(kāi)發(fā)微信公眾平臺(tái)的方法詳解【基于weixin-knife】

    Python開(kāi)發(fā)微信公眾平臺(tái)的方法詳解【基于weixin-knife】

    這篇文章主要介紹了Python開(kāi)發(fā)微信公眾平臺(tái)的方法,結(jié)合實(shí)例形式分析了Python基于weixin-knife針對(duì)微信公眾平臺(tái)消息、接口調(diào)用及事件處理的基本操作技巧與相關(guān)注意事項(xiàng),需要的朋友可以參考下
    2017-07-07
  • python自動(dòng)保存百度盤資源到百度盤中的實(shí)例代碼

    python自動(dòng)保存百度盤資源到百度盤中的實(shí)例代碼

    這篇文章主要介紹了python自動(dòng)保存百度盤資源到百度盤中的實(shí)例代碼,代碼簡(jiǎn)單易懂,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-08-08
  • 通過(guò)python讀取txt文件和繪制柱形圖的實(shí)現(xiàn)代碼

    通過(guò)python讀取txt文件和繪制柱形圖的實(shí)現(xiàn)代碼

    這篇文章主要介紹了通過(guò)python讀取txt文件和繪制柱形圖的實(shí)現(xiàn)代碼,代碼簡(jiǎn)單易懂,對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-03-03
  • golang/python實(shí)現(xiàn)歸并排序?qū)嵗a

    golang/python實(shí)現(xiàn)歸并排序?qū)嵗a

    這篇文章主要給大家介紹了關(guān)于golang/python實(shí)現(xiàn)歸并排序的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • python中Pycharm 輸出中文或打印中文亂碼現(xiàn)象的解決辦法

    python中Pycharm 輸出中文或打印中文亂碼現(xiàn)象的解決辦法

    本篇文章主要介紹了python中Pycharm 輸出中文或打印中文亂碼現(xiàn)象的解決辦法 ,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • PyQt界面阻塞卡死問(wèn)題的解決

    PyQt界面阻塞卡死問(wèn)題的解決

    當(dāng)用PyQt5開(kāi)發(fā)一個(gè)GUI界面 ,需要執(zhí)行業(yè)務(wù)邏輯時(shí),后臺(tái)邏輯執(zhí)行時(shí)間長(zhǎng),界面就容易出現(xiàn)卡死、未響應(yīng)等問(wèn)題,本文主要介紹了PyQt界面阻塞卡死問(wèn)題的解決
    2024-01-01

最新評(píng)論