本文和大家分享的主要是使用Future
對(duì)象來異步返回結(jié)果相關(guān)內(nèi)容,一起來看看吧,希望對(duì)大家
學(xué)習(xí)python有所幫助。
一個(gè)Future
是用來表示將來要完成的結(jié)果,異步循環(huán)可以自動(dòng)完成對(duì)這種對(duì)象的狀態(tài)觸發(fā),例子如下:
import asyncio
def
mark_done(future, result):
print('setting future result to {!r}'.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: {!r}'.format(result))
finally:
print('closing event loop')
event_loop.close()
print('future result: {!r}'.format(all_done.result()))
輸出結(jié)果如下:
scheduling mark_done
entering event loop
setting future result to 'the result'
returned result: 'the result'
closing event loop
future result: 'the result'
在這個(gè)例子里,并沒有調(diào)用return
語句,但也可以生成一個(gè)結(jié)果返回。
Future
的使用跟協(xié)程使用是一樣的。
來源:
大坡3D
軟件開發(fā)