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

首頁 > 編程 > Python > 正文

python生成器generator用法實例分析

2020-02-23 01:32:28
字體:
來源:轉載
供稿:網友

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

使用yield,可以讓函數生成一個結果序列,而不僅僅是一個值

例如:

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

next()調用生成器函數一直運行到下一條yield語句為止,此時next()將返回值傳遞給yield.而且函數將暫停中止執行。再次調用時next()時,函數將繼續執行yield之后的語句。此過程持續執行到函數返回為止。

通常不會像上面那樣手動調用next(), 而是使用for循環,例如:

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

next(), send()的返回值都是yield 后面的參數, send()跟next()的區別是send()是發送一個參數給(yield n)的表達式,作為其返回值給m, 而next()是發送一個None給(yield n)表達式, 這里需要區分的是,一個是調用next(),send()時候的返回值,一個是(yield n)的返回值,兩者是不一樣的.看輸出結果可以區分。

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 

希望本文所述對大家的Python程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 三都| 上高县| 贵定县| 盐津县| 涿州市| 乡城县| 揭阳市| 开封市| 滦南县| 涿鹿县| 承德县| 巩留县| 泰兴市| 闻喜县| 二手房| 新宾| 萨迦县| 泸溪县| 天柱县| 临邑县| 廉江市| 新民市| 六盘水市| 黄山市| 台前县| 德昌县| 萨迦县| 托里县| 深水埗区| 长岛县| 孟州市| 泸溪县| 中超| 永胜县| 蒙阴县| 南漳县| 宁陕县| 壶关县| 乌审旗| 颍上县| 合肥市|