欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python獲取協(xié)程返回值的四種方式詳解

 更新時間:2021年12月16日 08:53:04   作者:三爺帶你飛  
這篇文章主要為大家介紹了Python中獲取協(xié)程返回值的四種方法的示例代碼,文中的代碼詳細易懂,對我們學(xué)習(xí)Python有一定的幫助,需要的朋友可以了解一下

介紹

獲取協(xié)程返回值的四種方式:

1、通過ensure_future獲取,本質(zhì)是future對象中的result方

2、使用loop自帶的create_task, 獲取返回值

3、使用callback, 一旦await地方的內(nèi)容運行完,就會運行callback

4、使用partial這個模塊向callback函數(shù)中傳入值

源碼

import asyncio
from functools import partial


async def talk(name):
    print(f"talk function run.")
    await asyncio.sleep(0.1)
    return f"{name} talk!"


async def sleep(name):
    print(f"sleep function run.")
    await asyncio.sleep(0.1)
    return f"{name} sleep!"


def callback(name):
    print(f"主動拋出接收:{name}")


if __name__ == "__main__":
    # 通過ensure_future獲取,本質(zhì)是future對象中的result方法
    # loop = asyncio.get_event_loop()
    # get_future1 = asyncio.ensure_future(talk("Dog"))
    # get_future2 = asyncio.ensure_future(sleep("Cat"))
    # loop.run_until_complete(get_future1)
    # loop.run_until_complete(get_future2)
    # print(get_future1.result())
    # print(get_future2.result())

    # 使用loop自帶的create_task, 獲取返回值
    # loop = asyncio.get_event_loop()
    # task1 = loop.create_task(talk("Dog"))
    # task2 = loop.create_task(sleep("Cat"))
    # loop.run_until_complete(task1)
    # loop.run_until_complete(task2)
    # print(task1.result())
    # print(task2.result())

    # 使用callback, 一旦await地方的內(nèi)容運行完,就會運行callback
    # loop = asyncio.get_event_loop()
    # task1 = loop.create_task(talk("Dog"))
    # task2 = loop.create_task(sleep("Cat"))
    # task1.add_done_callback(callback)
    # task2.add_done_callback(callback)
    # loop.run_until_complete(task1)
    # loop.run_until_complete(task2)
    # print(task1.result())
    # print(task2.result())

    # 使用partial這個模塊向callback函數(shù)中傳入值
    loop = asyncio.get_event_loop()
    task1 = loop.create_task(talk("Dog"))
    task2 = loop.create_task(talk("Cat"))
    task1.add_done_callback(partial(callback))
    task2.add_done_callback(partial(callback))
    loop.run_until_complete(task1)
    loop.run_until_complete(task2)
    print(task1.result())
    print(task2.result())

依次執(zhí)行結(jié)果

通過ensure_future獲取,本質(zhì)是future對象中的result方法

使用loop自帶的create_task, 獲取返回值

用callback, 一旦await地方的內(nèi)容運行完,就會運行callback

使用partial這個模塊向callback函數(shù)中傳入值

到此這篇關(guān)于Python獲取協(xié)程返回值的四種方式詳解的文章就介紹到這了,更多相關(guān)Python獲取協(xié)程返回值內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python 字符串操作詳情

    Python 字符串操作詳情

    這篇文章主要介紹了Python 字符串操作,所謂字符串,就是由0個或者多個字符組成的有限序列,字符串的字符可以是特殊符號、英文字母、中文字符、日文的平假名或片假名、希臘字母、Emoji字符等等。下面我們大家一起來學(xué)習(xí)文章詳細內(nèi)容吧
    2021-11-11
  • python爬蟲爬取監(jiān)控教務(wù)系統(tǒng)的思路詳解

    python爬蟲爬取監(jiān)控教務(wù)系統(tǒng)的思路詳解

    這篇文章主要介紹了python爬蟲監(jiān)控教務(wù)系統(tǒng),主要實現(xiàn)思路是對已有的成績進行處理,變?yōu)閘ist集合,本文通過實例代碼給大家介紹的非常詳細,需要的朋友可以參考下
    2020-01-01
  • Python+wxPython實現(xiàn)一個簡單的音樂播放器

    Python+wxPython實現(xiàn)一個簡單的音樂播放器

    這篇文章主要為大家詳細介紹了如何使用Python編程語言和wxPython模塊創(chuàng)建一個簡單的音樂播放器,文中的示例代碼講解詳細,感興趣的可以了解下
    2023-09-09
  • python系列 文件操作的代碼

    python系列 文件操作的代碼

    這篇文章主要介紹了python系列 文件操作的代碼,主要是使用了python的open、read、write是些打開、讀取、寫入,導(dǎo)入numpy主要是用到數(shù)組操作,需要的朋友可以參考下
    2019-10-10
  • python3中zip()函數(shù)使用詳解

    python3中zip()函數(shù)使用詳解

    zip函數(shù)接受任意多個可迭代對象作為參數(shù),將對象中對應(yīng)的元素打包成一個tuple,然后返回一個可迭代的zip對象.這個可迭代對象可以使用循環(huán)的方式列出其元素,若多個可迭代對象的長度不一致,則所返回的列表與長度最短的可迭代對象相同.
    2018-06-06
  • Playwright中如何保持登錄狀態(tài)

    Playwright中如何保持登錄狀態(tài)

    本文主要介紹了Playwright中如何保持登錄狀態(tài),文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-12-12
  • 使用Gitee自動化部署python腳本的詳細過程

    使用Gitee自動化部署python腳本的詳細過程

    小編最近在自學(xué)python,在學(xué)習(xí)過程中有好多意向不到的收獲,真的很開心,今天重點給大家分享使用Gitee自動化部署python腳本的詳細過程,包括安裝環(huán)境搭建及一些注意事項,感興趣的朋友跟隨小編一起看看吧
    2021-05-05
  • python base64庫給用戶名或密碼加密的流程

    python base64庫給用戶名或密碼加密的流程

    這篇文章主要介紹了python base64庫給用戶名或密碼加密,需要的朋友可以參考下
    2020-01-01
  • 在cmd中運行.py文件: python的操作步驟

    在cmd中運行.py文件: python的操作步驟

    今天小編就為大家分享一篇在cmd中運行.py文件: python的操作步驟,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-05-05
  • python?pandas庫讀取excel/csv中指定行或列數(shù)據(jù)

    python?pandas庫讀取excel/csv中指定行或列數(shù)據(jù)

    通過閱讀表格,可以發(fā)現(xiàn)Pandas中提供了非常豐富的數(shù)據(jù)讀寫方法,下面這篇文章主要給大家介紹了關(guān)于python利用pandas庫讀取excel/csv中指定行或列數(shù)據(jù)的相關(guān)資料,需要的朋友可以參考下
    2022-02-02

最新評論