一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲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)不再提示

python語(yǔ)言之使用async關(guān)鍵字來(lái)定義函數(shù)

冬至配餃子 ? 來(lái)源:繆斯之子 ? 作者:肖新苗 ? 2022-08-24 11:12 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

協(xié)程背景

早期的協(xié)程是用yield來(lái)實(shí)現(xiàn)的,但是代碼特別難懂, python3.5之后的版本, 使用 async 關(guān)鍵字來(lái)定義的函數(shù)。調(diào)用該函數(shù),會(huì)返回一個(gè)協(xié)程對(duì)象

async和yield對(duì)比

不同點(diǎn):

1.1 yield語(yǔ)法比較復(fù)雜,async語(yǔ)法簡(jiǎn)單

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

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

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

例子說(shuō)明

分別用yield和async的方式, 實(shí)現(xiàn)協(xié)程


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)

'''
結(jié)果:
req1返回值 1
req2接收 2
req2返回值 2
'''


審核編輯:劉清

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

    關(guān)注

    3

    文章

    4381

    瀏覽量

    64890
  • python
    +關(guān)注

    關(guān)注

    56

    文章

    4827

    瀏覽量

    86760
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    micro 關(guān)鍵字搜索全覆蓋商品,并通過(guò) API 接口提供實(shí)時(shí)數(shù)據(jù)

    micro 關(guān)鍵字搜索全覆蓋商品”并通過(guò) API 接口提供實(shí)時(shí)數(shù)據(jù)
    的頭像 發(fā)表于 07-13 10:13 ?213次閱讀

    基礎(chǔ)篇3:掌握Python中的條件語(yǔ)句與循環(huán)

    不同的條件執(zhí)行不同的代碼塊。Python中的條件語(yǔ)句主要使用if、elif(else if的縮寫)和else關(guān)鍵字。 if語(yǔ)句 最簡(jiǎn)單的條件語(yǔ)句是if語(yǔ)句,它的工作方式如下: 復(fù)制代碼 if 條件表達(dá)式
    發(fā)表于 07-03 16:13

    單片機(jī)編程關(guān)鍵字之volatile

    volatile 修飾的變量是說(shuō)這變量可能會(huì)被意想不到地改變。通常對(duì)于程序員而言,單片機(jī) 中用的就算常見(jiàn)了volatile 是易變的,不穩(wěn)定的意思。其實(shí)對(duì)于很多人來(lái)說(shuō),根本沒(méi)見(jiàn)過(guò)這個(gè)關(guān)鍵字,不 知道
    發(fā)表于 04-02 13:47 ?2次下載

    帶你在單片機(jī)編程中熟練使用const(可下載)

    在 C 語(yǔ)言關(guān)鍵字中 const 舉足輕重,我們今天就深度聊一聊 const 的定義和實(shí)際應(yīng)用,讓它 不再是迷C 語(yǔ)言中 const 關(guān)鍵字
    發(fā)表于 04-01 14:18 ?2次下載

    const定義的是不是常量

    變成數(shù)字 5。 第二種跟宏定義類似,常量也可以在編譯的時(shí)候通過(guò)編譯器傳入。 以 gcc 為例,編譯的時(shí)候提供 -D 選項(xiàng),同樣會(huì)在預(yù)處理的時(shí)候替換成相應(yīng)的數(shù)字。 第三種枚舉,使用 enum 關(guān)鍵字。 枚舉的特點(diǎn)是默認(rèn)從 0 開(kāi)始,逐漸遞增。如果需要大量含義相同的常量
    的頭像 發(fā)表于 01-14 11:35 ?437次閱讀

    C語(yǔ)言關(guān)鍵字分別發(fā)生在哪個(gè)階段

    在編譯的第一個(gè)階段:預(yù)處理,對(duì)一些宏定義做替換。 第二個(gè),const。 C語(yǔ)言中的 const 用于修飾只讀變量,表示變量本身不能修改。 這個(gè)關(guān)鍵字會(huì)在編譯的第二步起作用,也就是編譯。強(qiáng)行修改一個(gè)只讀變量,編譯就會(huì)提示問(wèn)題。 第
    的頭像 發(fā)表于 11-24 10:31 ?607次閱讀

    C++新手容易犯的十個(gè)編程錯(cuò)誤

    virtual、static 等關(guān)鍵字,如果在 cpp 中多寫,編譯器會(huì)報(bào)錯(cuò)。 比如如下的虛接口與靜態(tài)成員變量的定義,只要在頭文件中聲明就可以了。 class shape{ virtual Draw
    的頭像 發(fā)表于 11-15 12:42 ?1029次閱讀

    對(duì)比Python與Java編程語(yǔ)言

    Python與Java都是目前非常流行的編程語(yǔ)言,它們各有其獨(dú)特的優(yōu)勢(shì)和適用場(chǎng)景。以下是對(duì)這兩種編程語(yǔ)言的對(duì)比: 一、語(yǔ)法和易用性 Python 語(yǔ)法簡(jiǎn)潔,代碼更易讀,非常適合初學(xué)者。
    的頭像 發(fā)表于 11-15 09:31 ?1104次閱讀

    Python常用函數(shù)大全

    Python 世界里,有一些寶藏函數(shù)和模塊,它們可以讓你編程更輕松、代碼更高效。這篇文章將帶你一一認(rèn)識(shí)這些神器,讓你的開(kāi)發(fā)生活瞬間輕松不少!
    的頭像 發(fā)表于 10-27 17:20 ?917次閱讀

    C語(yǔ)言關(guān)鍵字--typedef

    C語(yǔ)言關(guān)鍵字使用方法學(xué)習(xí)指南!
    的頭像 發(fā)表于 10-07 12:44 ?615次閱讀

    基于ArkTS語(yǔ)言的OpenHarmony APP應(yīng)用開(kāi)發(fā):HelloOpenharmony

    console.log(typeof data); // number 3.2.2、number TypeScript 提供了 number 關(guān)鍵字來(lái)表示數(shù)字類型,它是雙精度 64 位浮點(diǎn)值,既可以表示整數(shù)
    發(fā)表于 09-14 12:47

    使用邊緣AI和Sitara處理器進(jìn)行關(guān)鍵字檢測(cè)

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

    typedef struct和直接struct的區(qū)別

    在C語(yǔ)言中, typedef 和 struct 是兩種不同的關(guān)鍵字,它們?cè)?b class='flag-5'>定義和使用上有著明顯的區(qū)別。 typedef struct 和直接 struct 在 C 語(yǔ)言中用于
    的頭像 發(fā)表于 08-20 10:58 ?3634次閱讀

    鴻蒙原生應(yīng)用元服務(wù)開(kāi)發(fā)-倉(cāng)頡基本概念函數(shù)

    倉(cāng)頡使用關(guān)鍵字func 來(lái)表示函數(shù)定義的開(kāi)始,func 之后依次是函數(shù)名、參數(shù)列表、可選的函數(shù)
    發(fā)表于 08-14 16:23

    pytorch和python的關(guān)系是什么

    在當(dāng)今的人工智能領(lǐng)域,Python已經(jīng)成為了最受歡迎的編程語(yǔ)言之一。Python的易學(xué)易用、豐富的庫(kù)和框架以及強(qiáng)大的社區(qū)支持,使其成為了數(shù)據(jù)科學(xué)、機(jī)器學(xué)習(xí)和深度學(xué)習(xí)等領(lǐng)域的首選語(yǔ)言。而
    的頭像 發(fā)表于 08-01 15:27 ?3283次閱讀