亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術文章
文章詳情頁

Python生成器next方法和send方法區別詳解

瀏覽:81日期:2022-07-23 18:26:48

yield的語法規則是:

在yield這里暫停函數執行,并返回yield后面表達式的值(默認為None),直到被next()再次調用時,從上次暫停的yield代碼處繼續往下執行。當沒有可繼續next()時,拋出異常,該異常可被for循環處理。

def fib(n):

def fib(n): a, b = 0, 1 i = 0 while i < n: yield b a, b = b, a+b i += 1if __name__ == ’__main__’: f = fib(10) for item in f: print(item)

python中,含有yield關鍵字的對象就是一個生成器,每次調用next方法時會執行到yield后面的語句,然后返回yield后面代碼塊的執行結果

def foo(): bar_a = yield 1 # bar_a是語句塊(yield 1)的返回值,默認為None bar_b = yield bar_a yield '最后一個值,再迭代就要報StopIteration了'f = foo() # 創建生成器,此時沒有執行foo()里的任何語句print(next(f)) # 從foo()里進入,一直執行到(yield 1)處,此時變量bar_a還沒有創建print(next(f)) # 先將語句塊(yield 1)的返回值賦值個bar_a,此時bar_a的值是None。 # 然后執行到語句塊(yield bar_a),bar_b也還沒有被創建print(next(f)>>>1>>>None>>>最后一個值,再迭代就要報StopIteration了

send()

def foo(): bar_a = yield 1 bar_b = yield bar_a yield '最后一個值,再迭代就要報StopIteration了'f = foo()print(f.send(None)) # 和next(f)的效果一模一樣print(f.send('my lover')) # 覆蓋yield 1語句的返回值print(next(f))>>>1>>>my lover>>>最后一個值,再迭代就要報StopIteration了

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 99久久亚洲国产高清观看 | 丝袜国产 | 国产一区二区三区四区在线 | 亚洲色图清纯唯美 | 成人久久18免费网站入口 | 日本无卡αv免费视频 | 亚洲欧美制服丝袜一区二区三区 | 国产精品视频第一页 | 亚洲精品国产第一区第二区国 | 欧美在线精品一区二区在线观看 | 久久视频精品53在线观看 | 香蕉亚洲精品一区二区 | 国产国语一级毛片在线放 | 人交性视频大全 | 成人综合久久精品色婷婷 | 特级全毛片 | 韩国不卡1卡2卡三卡网站 | 亚洲欧洲精品国产二码 | 微拍秒拍99福利精品小视频 | 色免费看 | 日本xxwwwxxxx网站 | 国产精品免费入口视频 | 在线观看免费视频国产 | 在线97视频| 黄色国产| 香蕉高清免费永久在线视频 | 国产91精品露脸国语对白 | 不卡的在线视频免费观看 | 好爽快一点视频在线观看 | 大尺度做爰床戏呻吟免费观看91 | 国产免费色视频 | 国产淫视| 一级日本大片免费观看视频 | 好吊色青青青国产欧美日韩 | 久久精品这里精品 | 性生生活网站免费 | 国产一级理仑片日本 | 91看片在线观看 | 狠狠亚洲婷婷综合色香五 | 国产综合久久久久久 | 久久免费精彩视频 |