最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python生成器next方法和send方法區(qū)別詳解

 更新時(shí)間:2020年05月30日 08:43:51   作者:BSSZDS930  
這篇文章主要介紹了Python生成器next方法和send方法區(qū)別詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

yield的語法規(guī)則是:

在yield這里暫停函數(shù)執(zhí)行,并返回yield后面表達(dá)式的值(默認(rèn)為None),直到被next()再次調(diào)用時(shí),從上次暫停的yield代碼處繼續(xù)往下執(zhí)行。當(dāng)沒有可繼續(xù)next()時(shí),拋出異常,該異常可被for循環(huán)處理。

def fib(n):

def fib(n):
  a, b = 0, 1
  i = 0
  while i < n:
    yield b
    a, b = b, a+b
    i += 1

if __name__ == '__main__':
  f = fib(10)
  for item in f:
    print(item)

python中,含有yield關(guān)鍵字的對(duì)象就是一個(gè)生成器,每次調(diào)用next方法時(shí)會(huì)執(zhí)行到y(tǒng)ield后面的語句,然后返回yield后面代碼塊的執(zhí)行結(jié)果

def foo():
  bar_a = yield 1     # bar_a是語句塊(yield 1)的返回值,默認(rèn)為None
  bar_b = yield bar_a
  yield "最后一個(gè)值,再迭代就要報(bào)StopIteration了"

f = foo()          # 創(chuàng)建生成器,此時(shí)沒有執(zhí)行foo()里的任何語句
print(next(f))       # 從foo()里進(jìn)入,一直執(zhí)行到(yield 1)處,此時(shí)變量bar_a還沒有創(chuàng)建
print(next(f))       # 先將語句塊(yield 1)的返回值賦值個(gè)bar_a,此時(shí)bar_a的值是None。
              # 然后執(zhí)行到語句塊(yield bar_a),bar_b也還沒有被創(chuàng)建
print(next(f)

>>>1
>>>None
>>>最后一個(gè)值,再迭代就要報(bào)StopIteration了

send()

def foo():
  bar_a = yield 1
  bar_b = yield bar_a
  yield "最后一個(gè)值,再迭代就要報(bào)StopIteration了"

f = foo()
print(f.send(None))    # 和next(f)的效果一模一樣
print(f.send("my lover")) # 覆蓋yield 1語句的返回值
print(next(f))

>>>1
>>>my lover
>>>最后一個(gè)值,再迭代就要報(bào)StopIteration了

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python face_recognition實(shí)現(xiàn)AI識(shí)別圖片中的人物

    Python face_recognition實(shí)現(xiàn)AI識(shí)別圖片中的人物

    最近碰到了照片識(shí)別的場(chǎng)景,正好使用了face_recognition項(xiàng)目,給大家分享分享。face_recognition項(xiàng)目能做的很多,人臉檢測(cè)功能也是有的,是一個(gè)比較成熟的項(xiàng)目。感興趣的可以了解一下
    2022-01-01
  • Python fire模塊(最簡(jiǎn)化命令行生成工具)的使用教程詳解

    Python fire模塊(最簡(jiǎn)化命令行生成工具)的使用教程詳解

    Python Fire是谷歌開源的一個(gè)第三方庫(kù),用于從任何Python對(duì)象自動(dòng)生成命令行接口(CLI),可用于如快速拓展成命令行等形式。本文將通過實(shí)例為大家詳細(xì)說說fire模塊的使用,感興趣的可以了解一下
    2022-10-10
  • 詳解pandas apply 并行處理的幾種方法

    詳解pandas apply 并行處理的幾種方法

    這篇文章主要介紹了詳解pandas apply 并行處理的幾種方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-02-02
  • torch.optim優(yōu)化算法理解之optim.Adam()解讀

    torch.optim優(yōu)化算法理解之optim.Adam()解讀

    這篇文章主要介紹了torch.optim優(yōu)化算法理解之optim.Adam()解讀,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • 使用 Celery Once 來防止 Celery 重復(fù)執(zhí)行同一個(gè)任務(wù)

    使用 Celery Once 來防止 Celery 重復(fù)執(zhí)行同一個(gè)任務(wù)

    這篇文章主要介紹了使用 Celery Once 來防止 Celery 重復(fù)執(zhí)行同一個(gè)任務(wù),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-10-10
  • 基于Python編寫一個(gè)簡(jiǎn)單的端口掃描器

    基于Python編寫一個(gè)簡(jiǎn)單的端口掃描器

    端口掃描是非常實(shí)用的,不止用在信息安全方面,日常的運(yùn)維也用得到。本文將利用Python編寫一個(gè)簡(jiǎn)單的端口掃描器,需要的可以參考一下
    2022-04-04
  • Python?Pygame繪制直線實(shí)現(xiàn)光線反射效果

    Python?Pygame繪制直線實(shí)現(xiàn)光線反射效果

    這篇文章主要為大家詳細(xì)介紹了如何利用Python?Pygame繪制直線以實(shí)現(xiàn)光線反射效果,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-11-11
  • 基于Python編寫一個(gè)點(diǎn)名器的示例代碼

    基于Python編寫一個(gè)點(diǎn)名器的示例代碼

    想起小學(xué)的時(shí)候老師想點(diǎn)名找小伙伴回答問題的時(shí)候,老師竟斥巨資買了個(gè)點(diǎn)名器。今日無聊便敲了敲小時(shí)候老師斥巨資買的點(diǎn)名器,希望對(duì)大家有幫助
    2022-07-07
  • 讓python json encode datetime類型

    讓python json encode datetime類型

    python2.6+ 自帶的json模塊,不支持datetime的json encode,每次都需要手動(dòng)轉(zhuǎn)為字符串,很累人,我們可以自己封裝一個(gè)簡(jiǎn)單的方法處理此問題。
    2010-12-12
  • Python字典推導(dǎo)式將cookie字符串轉(zhuǎn)化為字典解析

    Python字典推導(dǎo)式將cookie字符串轉(zhuǎn)化為字典解析

    這篇文章主要介紹了Python字典推導(dǎo)式將cookie字符串轉(zhuǎn)化為字典解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-08-08

最新評(píng)論

万载县| 合水县| 东乌珠穆沁旗| 行唐县| 盘锦市| 丘北县| 湖州市| 吕梁市| 双城市| 都昌县| 阿坝| 洪湖市| 齐齐哈尔市| 赤壁市| 遂平县| 吴桥县| 类乌齐县| 东台市| 温宿县| 普兰店市| 迭部县| 景宁| 昌江| 陆丰市| 常州市| 乡城县| 咸宁市| 长宁县| 新乡县| 阿勒泰市| 台北县| 宜黄县| 瓦房店市| 湟中县| 嘉祥县| 虞城县| 静乐县| 阳江市| 民和| 静宁县| 铁岭市|