python loop call soon_python中call方法怎么使用?
基本上關(guān)于call沒有單獨(dú)使用的,一般是結(jié)合著三種函數(shù)進(jìn)行應(yīng)用,大家應(yīng)該看過call_soon吧,如果大家看過的話,就應(yīng)該知道我們這個(gè)函數(shù)可能和調(diào)用有關(guān)系吧,如果看到這里,您的想法一致,那么恭喜您,您的python知識(shí)累積已經(jīng)非常優(yōu)秀了,如果您跟上述想法并不一致或者沒有清晰吧,那也別擔(dān)心,看下文累積知識(shí)點(diǎn)吧~
call_soon
可以通過字面意思理解調(diào)用立即返回。loop.call_soon(callback,?*args,?context=None)
下面來看一下具體的使用例子。import?asyncio
import?functools
def?callback(args,?*,?kwargs="defalut"):
print(f"普通函數(shù)做為回調(diào)函數(shù),獲取參數(shù):{args},{kwargs}")
async?def?main(loop):
print("注冊(cè)callback")
loop.call_soon(callback,?1)
wrapped?=?functools.partial(callback,?kwargs="not?defalut")
loop.call_soon(wrapped,?2)
await?asyncio.sleep(0.2)
if?__name__?==?'__main__':
loop?=?asyncio.get_event_loop()
try:
loop.run_until_complete(main(loop))
finally:
loop.close()
輸出結(jié)果注冊(cè)callback
普通函數(shù)做為回調(diào)函數(shù),獲取參數(shù):1,defalut
普通函數(shù)做為回調(diào)函數(shù),獲取參數(shù):2,not?defalut
call_laterloop.call_later(delay,?callback,?*args,?context=None)
配合上面的call_soon讓我們看一個(gè)小例子import?asyncio
def?callback(n):
print(f"callback?{n}?invoked")
async?def?main(loop):
print("注冊(cè)callbacks")
loop.call_later(0.2,?callback,?1)
loop.call_later(0.1,?callback,?2)
loop.call_soon(callback,?3)
await?asyncio.sleep(0.4)
if?__name__?==?'__main__':
loop?=?asyncio.get_event_loop()
try:
loop.run_until_complete(main(loop))
finally:
loop.close()
輸出注冊(cè)callbacks
callback?3?invoked
callback?2?invoked
callback?1?invoked
通過上面的輸出可以得到如下結(jié)果:
1.call_soon會(huì)在call_later之前執(zhí)行,和它的位置在哪無關(guān)
2.call_later的第一個(gè)參數(shù)越小,越先執(zhí)行。
上面就是關(guān)于call方法組合起來的使用內(nèi)容了,大家如果再碰到類似函數(shù),應(yīng)該都會(huì)有一定清晰認(rèn)知的哦~還是要再說句,編程都是知識(shí)累積的過程,一定要好好看下呢~
總結(jié)
以上是生活随笔為你收集整理的python loop call soon_python中call方法怎么使用?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 学习记录-钓鱼网站总结
- 下一篇: Linux man page命令后的数字