国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - Python - python生成器generator用法實例分析

python生成器generator用法實例分析

2020-07-12 11:58MaxOmnis Python

這篇文章主要介紹了python生成器generator用法,實例分析了python生成器的相關使用技巧,需要的朋友可以參考下

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

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

例如:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
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循環,例如:

?
1
2
3
4
5
6
7
8
9
>>> 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)的返回值,兩者是不一樣的.看輸出結果可以區分。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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程序設計有所幫助。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 中文字幕 亚洲一区 | 一区二区三区在线播放视频 | 欧美一级在线视频 | 超碰一区二区三区 | 国产成人精品一区 | 综合色播| 97精品在线 | 中文字幕91在线 | 亚洲精品国产乱码在线看蜜月 | 欧美一级二级三级 | 日韩精品一区二区三区在线观看 | 91亚洲精品一区 | av一区二区三区免费观看 | 在线观看亚洲 | 国产91久久久久蜜臀青青天草二 | 欧洲成人午夜免费大片 | 国产精品伦一区二区三级视频 | 国产日韩欧美 | 国产亚洲精品久久久久久 | 久热中文字幕 | 国产成人精品一区二区三区四区 | 精品久久久久久久久久 | 欧美一区二区公司 | 国产综合精品一区二区三区 | 老司机午夜免费精品视频 | 亚洲欧美一区二区三区不卡 | 亚洲一区视频在线 | 在线观看视频黄 | 视频一区中文字幕 | 欧美激情一区二区 | 在线观看91免费视频 | 亚洲永久免费 | 91久久精品一区二区二区 | 日日夜夜国产 | 欧美日韩国产一区二区三区 | 好看的一级毛片 | 欧美一区二区三 | 国产精品视频久久 | 欧美日韩一区二区三区视频 | av黄色在线| 媚黑视频|