在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

3天內不再提示

通過例子由淺入深的理解yield協程

冬至配餃子 ? 來源:繆斯之子 ? 作者:肖新苗 ? 2022-08-23 11:12 ? 次閱讀

題記

本系列目標是通過例子由淺入深的理解協程.

讀者

需要有一定的python基礎, 概念部分建議閱讀經典書: 流暢的python 或者 查看w3c school 或者 菜鳥教程

基本概念

生成器:只要 Python 函數的定義體中有 yield 關鍵字,該函數就是生成器函數,調用生成器函數返回的是生成器對象

yield關鍵字:總的來說就是:產出和讓步,產出結果,讓出控制權

send:send() 方法致使協程前進到下一個yield 語句,另外,生成器可以作為協程使用

例子說明

yield的執行流程, 并制作了一個生成器調用的共同方法print_value

def yield1():
'''
整體解釋:1將作為第一個send方法的返回值,b是第二個send方法的參數,
最后的return是作為最后一個send方法的返回值
'''
# 4.yield1()協程:阻塞在此,執行yield產出結果為1,把控制權給主線程
# 9.yield1()協程:阻塞解除,獲得輸入值2,并賦值給b
b = yield 1
# 10.yield1()協程:返回b
return b


def yield2():
'''
協程阻塞在此,執行yield產出結果為None,并交出控制權給主線程
注: 因為yield后面沒有值,所以是None
'''
yield
# 如果沒有返回值,會return None
pass


def yield3():
yield 1


def print_value(f, args):

try:
# 3.print_value方法:對yield1()協程執行send
# 5.print_value方法:接收yield1()協程的返回值1,并賦值給b
# 8.print_value方法:對yield1()協程再次執行send,并傳入2
b = f.send(args)
except StopIteration as e:
'''
11.print_value方法:接收yield1()協程的返回值,
如果是最后一個迭代,就會進入到這個異常捕獲
'''

print(f'{f.__name__}返回值 {e.value}')
return e.value
else:
# 6.print_value方法:打印b
print(f'{f.__name__}接收 {b}')

'''

1.主線程:`yield1`是生成器函數,`yield1()`調用生成器函數,

返回生成器對象也可以稱作協程
'''
ys = [yield1(), yield2(), yield3()]
for y in ys:
# 2.主線程:y是yield1()生成器對象,第一次發送None
# 12.主線程:y是yield2()生成器對象,第一次發送None.
# 注:yield2 yield3根yield1差不多所以12步以后的都略過了
print_value(y, None)
# 7.主線程:第二次send參數為2
print_value(y, 2)


結果:
yield1接收 1
yield1返回值 2
yield2接收 None
yield2返回值 None
yield3接收 1
yield3返回值 None


審核編輯:劉清

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

    關注

    7

    文章

    322

    瀏覽量

    21748
  • python
    +關注

    關注

    56

    文章

    4825

    瀏覽量

    86365
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    請問NICE處理器與傳統ocb外設相比的優勢有什么?

    使用擴展指令調用NICE處理器完成預定操作,給出的優勢通常為代替CPU處理數據,但其實使用片上總線掛一個外設,然后驅動外設完成操作也可以實現相同的功能,所以想問一下處理器相比于外設實現還有沒有其它方面的優勢
    發表于 05-29 08:21

    NICE處理器與傳統ocb外設相比的優勢有什么?

    使用擴展指令調用NICE處理器完成預定操作,給出的優勢通常為代替CPU處理數據,但其實使用片上總線掛一個外設,然后驅動外設完成操作也可以實現相同的功能,所以想問一下處理器相比于外設實現還有沒有其它方面的優勢
    發表于 05-28 08:31

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

    是基于Lua語言實現的協作式并發控制機制,專為嵌入式及物聯網場景設計, 其核心特點是通過用戶態任務調度,在單線程中模擬多任務執行。 LuatOS通過輕量化協作式調度,在資源受限的嵌
    的頭像 發表于 04-10 15:23 ?155次閱讀
    LuatOS<b class='flag-5'>協</b><b class='flag-5'>程</b>深度解析:小白也能10分鐘學會,代碼效率直接起飛!

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

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

    電機沖刺北交所上市

    近日,北交所網站顯示,常州三電機股份有限公司(以下簡稱“三電機”)答復了第二輪問詢函。三電機此前于2023年12月29日IPO申請獲北交所受理。
    的頭像 發表于 03-28 17:53 ?1128次閱讀

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

    權(yield)實現協作,單線程內玩出多任務的感覺。 技術細節: 切換成本≈打哈欠(0.1μs~1μs) 阻塞操作會直接讓出CPU(比如等待網絡請求時,自動切換到其他
    發表于 03-26 09:27

    通過高新技術企業復審

    2024年12月11日,廣東省全國高新技術企業認定備案公示,廣州萬通信息技術有限公司通過2024年全國高新技術企業認定報備復審。 萬通是國家級專精特新重點“小巨人”企業、是“廣東省信息安全芯片
    的頭像 發表于 12-13 09:53 ?692次閱讀

    FS-MCore-F800E STM32例

    FS-MCore-F800E STM32例
    發表于 11-18 15:10 ?0次下載

    使用TMS320C6416處理器:Turbo處理器(TCP)

    電子發燒友網站提供《使用TMS320C6416處理器:Turbo處理器(TCP).pdf》資料免費下載
    發表于 10-23 10:16 ?0次下載
    使用TMS320C6416<b class='flag-5'>協</b>處理器:Turbo<b class='flag-5'>協</b>處理器(TCP)

    使用TMS320C6416處理器:Viterbi處理器(VCP)

    電子發燒友網站提供《使用TMS320C6416處理器:Viterbi處理器(VCP).pdf》資料免費下載
    發表于 10-21 09:36 ?0次下載
    使用TMS320C6416<b class='flag-5'>協</b>處理器:Viterbi<b class='flag-5'>協</b>處理器(VCP)

    安達發|APS高級排高級物料需求計劃

    APS高級排高級物料需求計劃是在制造業中非常重要的概念。它們分別涉及到生產計劃和物料管理,對于提高生產效率、降低成本和滿足客戶需求具有重要意義。下面我將詳細介紹這兩個概念及其在實際生產
    的頭像 發表于 09-25 17:49 ?586次閱讀
    安達發|APS高級排<b class='flag-5'>程</b>高級物料需求計劃

    基于APS排系統的PDM功能

    APS系統(AdvancedPlanningandScheduling,先進計劃與排)是一種基于APS系統(AdvancedPlanningandScheduling,先進計劃與排)是一種
    的頭像 發表于 09-21 16:53 ?562次閱讀
    基于APS排<b class='flag-5'>程</b>系統的PDM功能

    國內APS高級排軟件的全面解析

    在現代制造業和物流行業中,高效的生產計劃和庫存管理是企業提升競爭力的關鍵。隨著信息技術的發展,高級排軟件(AdvancedPlanningandScheduling,APS)成為了企業優化資源配置
    的頭像 發表于 09-21 16:49 ?812次閱讀
    國內APS高級排<b class='flag-5'>程</b>軟件的全面解析

    晶泰科技與鑫集團簽署戰略合作協議

    近日,在蘇州鑫能源中心,晶泰科技與鑫集團共同見證了雙方戰略合作新篇章的開啟,正式簽署了為期五年的戰略合作協議。此次合作,不僅標志著兩大行業巨頭的強強聯合,更預示著新能源材料研發領域將迎來一場由人工智能與自動化技術引領的深刻變革。
    的頭像 發表于 09-03 14:34 ?770次閱讀

    求CS32A039例

    求CS32A039例,郵箱:448789893@qq.com
    發表于 07-31 16:54
    主站蜘蛛池模板: aa在线播放| 免费黄色欧美 | 狠狠轮| 天堂中文在线资源 | 美女扒开下面让男人捅 | 人人成人免费公开视频 | 国产亚洲精品aaa大片 | 无遮挡很爽很污很黄在线网站 | 天天躁狠狠躁夜夜躁 | 欧美一级高清免费播放 | aaaa级毛片 | 欧美色婷婷 | 四虎在线免费播放 | 国产免费成人在线视频 | 亚洲国产毛片aaaaa无费看 | 久久99热狠狠色精品一区 | 久久精品国产精品亚洲毛片 | 日本亚洲天堂网 | 日本三级网站在线观看 | www.五月婷婷.com | 久久三级网站 | 亚洲伊人tv综合网色 | 久久久xxx | 女上男下边吃奶边做视频成都 | 久久羞羞视频 | 手机福利在线 | 国产手机免费视频 | 福利片免费一区二区三区 | 黄频网站免费大全在线观看 | 国产色秀视频 | 精品一区二区三区三区 | 中国一级做a爰片久久毛片 中韩日欧美电影免费看 | 精品三级三级三级三级三级 | 亚洲欧洲一区二区三区在线观看 | 四级毛片在线播放 | 美女在线看永久免费网址 | 天天爱天天射 | 日韩免费精品一级毛片 | 夜夜艹| 久久国产精品自在自线 | 男男gay高h文 |