python裡使用Future物件來非同步返回結果

2021-08-07 20:12:59 字數 971 閱讀 4660

乙個future是用來表示將來要完成的結果,非同步迴圈可以自動完成對這種物件的狀態觸發,例子如下:

import asyncio

def mark_done(future, result):

print('setting future result to '.format(result))

future.set_result(result)

event_loop = asyncio.get_event_loop()

try:

all_done = asyncio.future()

print('scheduling mark_done')

event_loop.call_soon(mark_done, all_done, 'the result')

print('entering event loop')

result = event_loop.run_until_complete(all_done)

print('returned result: '.format(result))

finally:

print('closing event loop')

event_loop.close()

print('future result: '.format(all_done.result()))

輸出結果如下:

scheduling mark_done

entering event loop

setting future result to 'the result'

returned result: 'the result'

closing event loop

future result: 'the result'

在這個例子裡,並沒有呼叫return語句,但也可以生成乙個結果返回。future的使用跟協程使用是一樣的。

Python學習筆記 使用 future

根據廖雪峰python教程整理 使用 future python的每個新版本都會增加一些新的功能,或者對原來的功能作一些改動。有些改動是不相容舊版本的,也就是在當前版本執行正常的 到下乙個版本執行就可能不正常了。從python 2.7 到python 3.x 就有不相容的一些改動,比如 2.x裡的字...

Python學習(二十) future

future 模組 from future import division使用python3中的除法.在python2除法中小數部分被截除,匯入division後變成了真正的除法 7 32 from future import division 7 32.3333333333333335 print...

Python的未來 future模組

簡單介紹一下python未來將會支援的一些語言特點 雖然ibm的 上也有介紹.但是太凌亂了.而且中翻譯過後,的格式想狗屎一樣.下面簡單介紹一下這些特點 nested scopes 改變名空間的搜尋過程 generators 使用生成器.能夠產生能儲存當前狀態的函式.division 精確的除法 ab...