一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

從yield開始入門python協(xié)程

python爬蟲知識(shí)分享 ? 來源:python爬蟲知識(shí)分享 ? 作者:python爬蟲知識(shí)分享 ? 2022-03-16 16:20 ? 次閱讀

簡(jiǎn)單介紹 yield

本篇文章會(huì)先向你介紹一個(gè)陌生的 Python 關(guān)鍵詞,他和 return 就像一對(duì)新兄弟,有相似之處,又各有不同。

相似的是:yield 和 return 都可以在一個(gè)函數(shù)里將值返回給調(diào)用方;

不同的是:return 后,函數(shù)運(yùn)行就終止了,而 yield 則只是暫停運(yùn)行。

關(guān)于 yield 的簡(jiǎn)單使用,請(qǐng)先看如下例子

>>> def demo():
...     yield 1
...     yield 2
...     yield 3
...
>>> gen = demo()
>>> gen

>>>
>>>
>>> for i in gen:
...     print(i)
...
1
2
3

重點(diǎn)有如下幾個(gè):

含有 yield 的函數(shù),不再是普通的函數(shù),直接調(diào)用含有 yield 的函數(shù),返回的是一個(gè)生成器對(duì)象(generator object)

可以使用 for 循環(huán)(實(shí)際還可以使用 list 或者 next 函數(shù))來遍歷該生成器對(duì)象,將 yield 的內(nèi)容一個(gè)一個(gè)打印出來

向生成器中發(fā)送消息

函數(shù)暫停之后,如果調(diào)用者能在下一次恢復(fù)函數(shù)運(yùn)行的時(shí)候,向它傳遞一些信息,那么整個(gè)程序的靈活性會(huì)大大提升。

下面通過一個(gè)簡(jiǎn)明的演示來看看,如何往生成器中發(fā)送消息:

def jumping_range(N):
    index = 0
    while index < N:
        # 通過send()發(fā)送的信息將賦值給jump
        jump = yield index
        if jump is None:
            jump = 1
        index += jump

if __name__ == '__main__':
    itr = jumping_range(5)
    print(next(itr))
    print(itr.send(2))
    print(next(itr))
    print(itr.send(-1))

輸出。

0
2
3
2

這里解釋下為什么這么輸出。 重點(diǎn)是jump = yield index這個(gè)語(yǔ)句。

分成兩部分:

1.yield index 是將index return給外部調(diào)用程序。

2.jump = yield 可以接收外部程序通過send()發(fā)送的信息,并賦值給jump


審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 信息
    +關(guān)注

    關(guān)注

    0

    文章

    407

    瀏覽量

    35802
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4365

    瀏覽量

    63913
  • python
    +關(guān)注

    關(guān)注

    56

    文章

    4822

    瀏覽量

    85900
收藏 人收藏

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    python入門圣經(jīng)-高清電子書(建議下載)

    此資料內(nèi)容是一本針對(duì)所有層次的Python 讀者而作的Python 入門電子書。 全書分兩部分:第一部分介紹用Python 編程所必須了解的基本概念,包括matplotlib、NumP
    發(fā)表于 04-10 16:53

    LuatOS協(xié)深度解析:小白也能10分鐘學(xué)會(huì),代碼效率直接起飛!

    嵌入式開發(fā)如何兼顧效率與簡(jiǎn)潔?LuatOS協(xié)給出完美答案!它用類線程的語(yǔ)法封裝異步邏輯,讓多任務(wù)開發(fā)像單線程一樣簡(jiǎn)單。本文用圖文并茂的方式拆解協(xié)原理,10分鐘帶你輕松
    的頭像 發(fā)表于 04-10 15:23 ?72次閱讀
    LuatOS<b class='flag-5'>協(xié)</b><b class='flag-5'>程</b>深度解析:小白也能10分鐘學(xué)會(huì),代碼效率直接起飛!

    10分鐘上手寫代碼,LuatOS協(xié)輕松掌握!

    10分鐘學(xué)會(huì)LuatOS協(xié),從此你的程序也能像通勤族利用碎片時(shí)間一樣游刃有余?,F(xiàn)在就去動(dòng)手試一試,開啟異步編程新體驗(yàn)! 寫給第一次聽說協(xié)的你?: 別怕!
    的頭像 發(fā)表于 04-10 15:18 ?124次閱讀
    10分鐘上手寫代碼,LuatOS<b class='flag-5'>協(xié)</b><b class='flag-5'>程</b>輕松掌握!

    Python入門到精通背記手冊(cè)

    電子發(fā)燒友網(wǎng)站提供《Python入門到精通背記手冊(cè).pdf》資料免費(fèi)下載
    發(fā)表于 03-28 17:43 ?47次下載

    進(jìn)程、線程、協(xié)傻傻分不清?一文帶你徹底扒光它們的\"底褲\"!

    /file0 線程1 下載開始 http://example.com/file1 ...(并行執(zhí)行) 所有下載完成! 第三章:協(xié)——程序界的「時(shí)間管理大師」 定義:用戶態(tài)的「虛擬線程」,靠主動(dòng)讓
    發(fā)表于 03-26 09:27

    零基礎(chǔ)入門:如何在樹莓派上編寫和運(yùn)行Python程序?

    在這篇文章中,我將為你簡(jiǎn)要介紹Python程序是什么、Python程序可以用來做什么,以及如何在RaspberryPi上編寫和運(yùn)行一個(gè)簡(jiǎn)單的Python程序。什么是Python程序?
    的頭像 發(fā)表于 03-25 09:27 ?331次閱讀
    零基礎(chǔ)<b class='flag-5'>入門</b>:如何在樹莓派上編寫和運(yùn)行<b class='flag-5'>Python</b>程序?

    DeepSeek入門到精通

    電子發(fā)燒友網(wǎng)站提供《DeepSeek入門到精通.pdf》資料免費(fèi)下載
    發(fā)表于 03-04 15:43 ?58次下載

    液晶屏維修入門到精通

    資料介紹了如何液晶屏入門到提高全部?jī)?nèi)容
    發(fā)表于 02-24 16:46 ?5次下載

    清華大學(xué)發(fā)布:DeepSeek入門到精通

    《DeepSeek:入門到精通》是由清華大學(xué)新聞與傳播學(xué)院新媒體研究中心元宇宙文化實(shí)驗(yàn)室的余夢(mèng)瓏博士后團(tuán)隊(duì)精心撰寫的一份專業(yè)文檔。該文檔篇幅長(zhǎng)達(dá)104頁(yè),文檔的核心內(nèi)容圍繞DeepSeek的技術(shù)
    的頭像 發(fā)表于 02-14 09:49 ?1.1w次閱讀
    清華大學(xué)發(fā)布:DeepSeek<b class='flag-5'>從</b><b class='flag-5'>入門</b>到精通

    DeepSeek:入門到精通

    DeepSeek:入門到精通
    發(fā)表于 02-08 18:00 ?120次下載

    適用于MySQL和MariaDB的Python連接器:可靠的MySQL數(shù)據(jù)連接器和數(shù)據(jù)庫(kù)

    適用于 MySQL 和 MariaDB 的 Python 連接器 Python Connector for MySQL 是一種可靠的連接解決方案,用于 Python 應(yīng)用程序訪問 M
    的頭像 發(fā)表于 01-17 12:18 ?351次閱讀
    適用于MySQL和MariaDB的<b class='flag-5'>Python</b>連接器:可靠的MySQL數(shù)據(jù)連接器和數(shù)據(jù)庫(kù)

    Python代理技術(shù)詳解:入門到進(jìn)階

    Python代理技術(shù)是一種在網(wǎng)絡(luò)編程中廣泛使用的技術(shù),它允許通過代理服務(wù)器發(fā)送和接收網(wǎng)絡(luò)請(qǐng)求。
    的頭像 發(fā)表于 11-12 07:06 ?485次閱讀

    TCSH shell 編程入門

    ICer從業(yè)人員最先需要掌握的語(yǔ)言,就是linux shell語(yǔ)言。TCSH是ICer使用最多的Shell語(yǔ)言,可以說ICer入門語(yǔ)言TCSH開始
    發(fā)表于 11-01 10:45 ?0次下載

    新書推薦 | TSMaster開發(fā)入門到精通

    書名:TSMaster開發(fā)入門到精通書號(hào):9787302667193作者:楊金升劉矗劉功申定價(jià):99.80元《CANoe開發(fā)入門到精通》作者又一力作!本書旨在幫助廣大汽車工業(yè)領(lǐng)域的
    的頭像 發(fā)表于 08-30 12:37 ?983次閱讀
    新書推薦 | TSMaster開發(fā)<b class='flag-5'>從</b><b class='flag-5'>入門</b>到精通

    如何實(shí)現(xiàn)Python復(fù)制文件操作

    Python 中有許多“開蓋即食”的模塊(比如 os,subprocess 和 shutil)以支持文件 I/O 操作。在這篇文章中,你將會(huì)看到一些用 Python 實(shí)現(xiàn)文件復(fù)制的特殊方法。下面我們開始學(xué)習(xí)這九種不同的方法來實(shí)現(xiàn)
    的頭像 發(fā)表于 07-18 14:53 ?643次閱讀