女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

從yield開始入門python協程

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

簡單介紹 yield

本篇文章會先向你介紹一個陌生的 Python 關鍵詞,他和 return 就像一對新兄弟,有相似之處,又各有不同。

相似的是:yield 和 return 都可以在一個函數里將值返回給調用方;

不同的是:return 后,函數運行就終止了,而 yield 則只是暫停運行。

關于 yield 的簡單使用,請先看如下例子

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

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

重點有如下幾個:

含有 yield 的函數,不再是普通的函數,直接調用含有 yield 的函數,返回的是一個生成器對象(generator object)

可以使用 for 循環(實際還可以使用 list 或者 next 函數)來遍歷該生成器對象,將 yield 的內容一個一個打印出來

向生成器中發送消息

函數暫停之后,如果調用者能在下一次恢復函數運行的時候,向它傳遞一些信息,那么整個程序的靈活性會大大提升。

下面通過一個簡明的演示來看看,如何往生成器中發送消息:

def jumping_range(N):
    index = 0
    while index < N:
        # 通過send()發送的信息將賦值給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

這里解釋下為什么這么輸出。 重點是jump = yield index這個語句。

分成兩部分:

1.yield index 是將index return給外部調用程序。

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


審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 信息
    +關注

    關注

    0

    文章

    407

    瀏覽量

    35841
  • 函數
    +關注

    關注

    3

    文章

    4371

    瀏覽量

    64223
  • python
    +關注

    關注

    56

    文章

    4825

    瀏覽量

    86216
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    跟老齊學Python入門到精通

    本帖最后由 yuu_cool 于 2025-6-3 16:52 編輯 本資料是面向編程零基礎讀者的Python 入門教程,內容涵蓋了Python 的基礎知識和初步應用。以比較輕快的風格,向零基
    發表于 06-03 16:10

    DeepSeek:入門到精通

    電子發燒友網站提供《DeepSeek:入門到精通.pdf》資料免費下載
    發表于 05-28 14:12 ?0次下載

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

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

    LuatOS深度解析:小白也能10分鐘學會,代碼效率直接起飛!

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

    10分鐘上手寫代碼,LuatOS輕松掌握!

    10分鐘學會LuatOS,從此你的程序也能像通勤族利用碎片時間一樣游刃有余。現在就去動手試一試,開啟異步編程新體驗! 寫給第一次聽說的你?: 別怕!
    的頭像 發表于 04-10 15:18 ?192次閱讀
    10分鐘上手寫代碼,LuatOS<b class='flag-5'>協</b><b class='flag-5'>程</b>輕松掌握!

    Python入門到精通背記手冊

    電子發燒友網站提供《Python入門到精通背記手冊.pdf》資料免費下載
    發表于 03-28 17:43 ?48次下載

    進程、線程、傻傻分不清?一文帶你徹底扒光它們的\"底褲\"!

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

    零基礎入門:如何在樹莓派上編寫和運行Python程序?

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

    DeepSeek入門到精通

    電子發燒友網站提供《DeepSeek入門到精通.pdf》資料免費下載
    發表于 03-04 15:43 ?59次下載

    液晶屏維修入門到精通

    資料介紹了如何液晶屏入門到提高全部內容
    發表于 02-24 16:46 ?5次下載

    DeepSeek:入門到精通

    DeepSeek:入門到精通
    發表于 02-08 18:00 ?121次下載

    適用于MySQL和MariaDB的Python連接器:可靠的MySQL數據連接器和數據庫

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

    Python代理技術詳解:入門到進階

    Python代理技術是一種在網絡編程中廣泛使用的技術,它允許通過代理服務器發送和接收網絡請求。
    的頭像 發表于 11-12 07:06 ?552次閱讀

    TCSH shell 編程入門

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

    新書推薦 | TSMaster開發入門到精通

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