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