Python延時操作實(shí)現(xiàn)方法示例
本文實(shí)例講述了Python延時操作實(shí)現(xiàn)方法。分享給大家供大家參考,具體如下:
在日常的開發(fā)中,往往會遇到這樣的需求,需要某一個函數(shù)在一段時間之后才執(zhí)行以達(dá)到某種特定的效果。此時,我們就需要某種機(jī)制,使一個函數(shù)延后執(zhí)行。接下來簡單介紹一下兩種實(shí)現(xiàn)此類效果的方法:
sched
import sched,time
def func(a):
print time.time(),"Hello Sched!",a
print time.time()
s = sched.scheduler(time.time,time.sleep)
# 2為延后時間,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,time
def func(a):
print time.time(),"Hello Timer!",a
print 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會等到執(zhí)行函數(shù)完成后才會往下執(zhí)行。
更多關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Python日期與時間操作技巧總結(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ì)有所幫助。
相關(guān)文章
Python使用pandas實(shí)現(xiàn)對數(shù)據(jù)進(jìn)行特定排序
在數(shù)據(jù)分析和處理過程中,排序是一項(xiàng)常見而重要的操作,本文將詳細(xì)介紹如何利用pandas對數(shù)據(jù)進(jìn)行特定排序,包括基本排序、多列排序、自定義排序規(guī)則等方面的內(nèi)容,需要的可以了解下2024-03-03

