国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

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

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

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

yield的語法規則是:

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

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 編程
相關文章:
主站蜘蛛池模板: a级毛片免费观看视频 | 欧美性极品hd高清视频 | 国产成人精品一区二区免费视频 | 亚洲欧美另类视频 | 三级视频在线播放线观看 | 毛片手机在线 | 久久午夜视频 | 国产乱子精品免费视观看片 | 国产孕妇孕交大片孕 | 精品无人区一区二区三区a 精品午夜国产在线观看不卡 | 成人精品综合免费视频 | 中文字幕在线观看一区 | 毛片在线视频在线播放 | 禁止18周岁进入免费网站观看 | 911精品国产91久久久久 | 成人久久免费视频 | 国产成人在线观看免费网站 | 成人在线观看午夜 | 91精品最新国内在线播放 | 一级做a爰片久久毛片鸭王 一级做a爰全过程免费视频毛片 | 一本久久道 | 亚洲免费在线播放 | 偷柏自拍亚洲欧美综合在线图 | 亚洲一区二区三区不卡视频 | 91精品国产高清久久久久久91 | 午夜美女久久久久爽久久 | 精品国产一区二区在线观看 | 国产一级a毛片 | 亚洲欧美一区二区三区孕妇 | 日韩在线专区 | 国产成人毛片精品不卡在线 | 国产三级日产三级日本三级 | 高清性色生活片久久久 | 黄色三级视频 | 国产高清视频a在线大全 | 午夜国产理论 | 亚洲精品福利一区二区三区 | 女人张开腿让男人操 | 欧美性精品hd在线观看 | 久久国产精品永久免费网站 | 精品国产香蕉在线播出 |