本文實(shí)例講述了Python延時(shí)操作實(shí)現(xiàn)方法。分享給大家供大家參考,具體如下:
在日常的開發(fā)中,往往會(huì)遇到這樣的需求,需要某一個(gè)函數(shù)在一段時(shí)間之后才執(zhí)行以達(dá)到某種特定的效果。此時(shí),我們就需要某種機(jī)制,使一個(gè)函數(shù)延后執(zhí)行。接下來簡單介紹一下兩種實(shí)現(xiàn)此類效果的方法:
sched
import sched,timedef func(a): print time.time(),"Hello Sched!",aprint time.time()s = sched.scheduler(time.time,time.sleep)# 2為延后時(shí)間,1為優(yōu)先級,func為函數(shù)名,("test1",)為函數(shù)參數(shù)s.enter(2,1,func,("test1",))s.enter(2,0,func,("test2",))s.run()print time.time()輸出結(jié)果如下:
1519443179.4
1519443181.4 Hello Sched! test2
1519443181.4 Hello Sched! test1
1519443181.4
從結(jié)果可以看出,函數(shù)果真延后了2s執(zhí)行,并且test2比test1先執(zhí)行,是因?yàn)橥瑯邮?s后執(zhí)行,并且test2的優(yōu)先級比test1高
timer
import threading,timedef func(a): print time.time(),"Hello Timer!",aprint time.time()s = threading.Timer(2,func,("test",))s.start()print time.time()輸出結(jié)果如下:
1519443055.69
1519443055.69
1519443057.69 Hello Timer! test
從結(jié)果可以看出,函數(shù)果真延后了2s執(zhí)行。
從兩種方式的輸出結(jié)果可以看出,timer是異步執(zhí)行的,并不卡住下面代碼的執(zhí)行,而sched會(huì)等到執(zhí)行函數(shù)完成后才會(huì)往下執(zhí)行。
更多關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Python日期與時(shí)間操作技巧總結(jié)》、《Python數(shù)學(xué)運(yùn)算技巧總結(jié)》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python Socket編程技巧總結(jié)》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》及《Python入門與進(jìn)階經(jīng)典教程》
希望本文所述對大家Python程序設(shè)計(jì)有所幫助。
新聞熱點(diǎn)
疑難解答
圖片精選