await和yield from對比
不同點:yield from 后面的值,要么是生成器,要么是最終為可迭代對象,而await后面只能跟async開頭的方法
相同點: 都是產(chǎn)出結果,讓出控制權,等待返回結果
例子說明
分別用await和yield from實現(xiàn)了等待協(xié)程完成的過程
async def req1_sub(param):
return param+10
async def req1(param):
res = await req1_sub(param)
res += 100
return res
def req2_sub(param):
res = yield param+10
return res
def req2(param):
res = yield from req2_sub(param)
res += 100
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__}接收 {b}')
return b
g1 = req1(1)
print_value(g1, None)
g2 = req2(2)
res = print_value(g2, None)
print_value(g2, res)
'''
結果:
req1返回值 111
req2接收 12
req2返回值 112
'''
審核編輯:劉清
-
生成器
+關注
關注
7文章
322瀏覽量
22715 -
python
+關注
關注
57文章
4876瀏覽量
90038
發(fā)布評論請先 登錄
C語言安全編碼指南:MISRA C、CERT C、CWE 與 C Secure 標準對比與Perforce QAC應用詳解
一文了解Mojo編程語言
termux調試python猜數(shù)字游戲
termux如何搭建python游戲
【HZ-T536開發(fā)板免費體驗】4、使用藍牙模塊讀取小米溫濕度計的數(shù)據(jù)
python app不能運行怎么解決?
C++ 與 Python:樹莓派上哪種語言更優(yōu)?
linux虛擬環(huán)境中調用Linux 版matlab編譯的python庫時出錯
TaskPool和Worker的對比分析
跟老齊學Python:從入門到精通
HarmonyOS優(yōu)化應用文件上傳下載慢問題性能優(yōu)化二
HarmonyOS優(yōu)化應用文件上傳下載慢問題性能優(yōu)化二
進程、線程、協(xié)程傻傻分不清?一文帶你徹底扒光它們的\"底褲\"!
零基礎入門:如何在樹莓派上編寫和運行Python程序?
python語言之a(chǎn)wait和yield from的對比
評論