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

首頁 > 編程 > Python > 正文

python生成器generator用法實例分析

2019-11-25 17:18:45
字體:
來源:轉載
供稿:網友

本文實例講述了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程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 韶关市| 靖边县| 呼玛县| 枣强县| 历史| 黎平县| 攀枝花市| 阳西县| 东安县| 罗源县| 潮安县| 昭平县| 民丰县| 鹤壁市| 永仁县| 抚宁县| 辽阳县| 林甸县| 砀山县| 荣成市| 遵义县| 深圳市| 赤壁市| 治县。| 衡水市| 合山市| 平凉市| 河间市| 监利县| 罗田县| 南昌市| 郑州市| 仙桃市| 普陀区| 故城县| 鄢陵县| 花莲市| 峨边| 建湖县| 张家界市| 久治县|