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

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

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

3天內不再提示

python語言之使用async關鍵字來定義函數

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

協程背景

早期的協程是用yield來實現的,但是代碼特別難懂, python3.5之后的版本, 使用 async 關鍵字來定義的函數。調用該函數,會返回一個協程對象

async和yield對比

不同點:

1.1 yield語法比較復雜,async語法簡單

yield:b=yield a,yield右邊的a是第一次的返回值,左邊的b是第二次執行的輸入值,最后還有一個return是最后一次返回值

async:方法前面加async,做send參數時,只能傳None,代碼可讀性大大提高了, 開發者只需要關注傳參和返回值, 而不需要花額外精力去理解yield左右的變量

1.2 async只需要send一次就可以獲得返回值,yield要send2次

例子說明

分別用yield和async的方式, 實現協程


async def req1(param):
return param


def req2(param):
res = yield param
return res


def print_value(f, args):
try:
b = f.send(args)
except StopIteration as e:
print(f'{f.__name__}返回值 {e.value}')
return e.value
else:
print(f'{f.__name__}接收 ')
return b


g1 = req1(1)
print_value(g1, None)

g2 = req2(2)
res = print_value(g2, None)
print_value(g2, res)

'''
結果:
req1返回值 1
req2接收 2
req2返回值 2
'''


審核編輯:劉清

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

    關注

    3

    文章

    4346

    瀏覽量

    62974
  • python
    +關注

    關注

    56

    文章

    4807

    瀏覽量

    85040
收藏 人收藏

    評論

    相關推薦

    C語言關鍵字分別發生在哪個階段

    在編譯的第一個階段:預處理,對一些宏定義做替換。 第二個,const。 C語言中的 const 用于修飾只讀變量,表示變量本身不能修改。 這個關鍵字會在編譯的第二步起作用,也就是編譯。強行修改一個只讀變量,編譯就會提示問題。 第
    的頭像 發表于 11-24 10:31 ?232次閱讀

    C語言關鍵字--typedef

    C語言關鍵字使用方法學習指南!
    的頭像 發表于 10-07 12:44 ?343次閱讀

    基于ArkTS語言的OpenHarmony APP應用開發:HelloOpenharmony

    console.log(typeof data); // number 3.2.2、number TypeScript 提供了 number 關鍵字表示數字類型,它是雙精度 64 位浮點值,既可以表示整數
    發表于 09-14 12:47

    使用邊緣AI和Sitara處理器進行關鍵字檢測

    電子發燒友網站提供《使用邊緣AI和Sitara處理器進行關鍵字檢測.pdf》資料免費下載
    發表于 09-02 11:30 ?0次下載
    使用邊緣AI和Sitara處理器進行<b class='flag-5'>關鍵字</b>檢測

    typedef struct和直接struct的區別

    在C語言中, typedef 和 struct 是兩種不同的關鍵字,它們在定義和使用上有著明顯的區別。 typedef struct 和直接 struct 在 C 語言中用于
    的頭像 發表于 08-20 10:58 ?3114次閱讀

    鴻蒙原生應用元服務開發-倉頡基本概念函數

    倉頡使用關鍵字func 表示函數定義的開始,func 之后依次是函數名、參數列表、可選的函數
    發表于 08-14 16:23

    快速掌握C語言關鍵字

    C語言中的32個關鍵字你知道多少個呢?根據關鍵字的作用分為四類:數據類型關鍵字、控制語句關鍵字、存儲類型
    的頭像 發表于 07-06 08:04 ?421次閱讀
    快速掌握C<b class='flag-5'>語言</b><b class='flag-5'>關鍵字</b>

    inline關鍵字被優化導致此類函數被布局在flash內,怎么處理?

    問題解決。 但是,希望樂鑫官方把idf內源碼中的inline關鍵詞都替換為__attribute((always_inline)),因為inline關鍵字不可靠! 期待下次idf版本更新能解決此bug,自己修改idf源碼真的是權宜之計、臨時之策。
    發表于 06-21 12:03

    Go語言中的函數、方法與接口詳解

    Go 沒有類,不過可以為結構體類型定義方法。方法就是一類帶特殊的接收者參數的函數。方法接收者在它自己的參數列表內,位于 func 關鍵字和方法名之間。(非結構體類型也可以定義方法)
    的頭像 發表于 04-23 16:21 ?914次閱讀

    鴻蒙OS開發實例:【ArkTS類庫異步并發async/await】

    async/await是一種用于處理異步操作的Promise語法糖,使得編寫異步代碼變得更加簡單和易讀。通過使用async關鍵字聲明一個函數為異步
    的頭像 發表于 04-02 20:57 ?1127次閱讀
    鴻蒙OS開發實例:【ArkTS類庫異步并發<b class='flag-5'>async</b>/await】

    PHP用戶定義函數詳細講解

    描述 在所有編程和腳本語言中,函數是可以在程序中重復使用的語句塊。在 PHP 中,函數的概念與另一種語言(如“C”)中的概念相同。標準 PHP 發行版中有 1,000 多個內置
    的頭像 發表于 03-20 14:27 ?449次閱讀

    鴻蒙原生應用開發-ArkTS語言基礎類庫異步并發簡述async/await

    async/await是一種用于處理異步操作的Promise語法糖,使得編寫異步代碼變得更加簡單和易讀。通過使用async關鍵字聲明一個函數為異步
    發表于 03-06 14:44

    C語言中的typedef的應用

    C 語言提供了 typedef 關鍵字,您可以使用它為類型取一個新的名字。下面的實例為單字節數字定義了一個術語 BYTE。
    發表于 03-06 11:34 ?431次閱讀
    C<b class='flag-5'>語言</b>中的typedef的應用

    verilog中function和task的區別

    非常相似,但它們在功能和使用方式上有一些重要的區別。 定義和聲明方式不同: Function:使用關鍵字"function"定義和聲明。函數
    的頭像 發表于 02-22 15:40 ?2037次閱讀

    內聯函數定義 為什么需要內聯函數

    inline關鍵字是C99標準的型關鍵字,其作用是將函數展開,把函數的代碼復制到每一個調用處。
    的頭像 發表于 02-19 12:20 ?595次閱讀
    主站蜘蛛池模板: 一区二区三区四区欧美 | jlzzjlzzjlzz亚洲女 | 国产在线麻豆自在拍91精品 | 夜夜操夜夜摸 | 一级片在线观看视频 | 免费在线观看黄色 | 国产黄视频在线观看 | 亚洲福利一区二区 | 黄a免费| 欧美另类丰满69xxxxx | 亚洲国产成人成上人色 | 欧美成人自拍视频 | 天天躁狠狠躁夜夜躁2021 | 奇米7777 | 色多多视频在线观看播放 | 视频在线免费观看网址 | 一区在线播放 | 中国国产aa一级毛片 | 中文字幕不卡一区 | 在线观看你懂得 | 8050午夜一级二级全黄 | 亚洲精品欧洲久久婷婷99 | 久久久噜噜噜 | 轻点灬大ji巴太粗太长了啊h | 永久网站色视频在线观看免费 | 中国美女乱淫免费看视频 | 久久的色偷偷 | 色综合久久久久久久久久久 | 在线三区 | 35pao免费视频 | 亚洲 欧美 丝袜 制服 在线 | 久久这里只有精品免费播放 | 在线视频网址免费播放 | 黄色网址你懂得 | 看逼网址 | 久草男人天堂 | 欧美色淫 | 天堂网www在线资源链接 | 射菊吧 | 日日做日日摸夜夜爽 | 日本免费大黄在线观看 |