創(chuàng)新互聯(lián)www.cdcxhl.cn八線動(dòng)態(tài)BGP香港云服務(wù)器提供商,新人活動(dòng)買多久送多久,劃算不套路!
創(chuàng)新互聯(lián)建站專注于企業(yè)全網(wǎng)整合營銷推廣、網(wǎng)站重做改版、清鎮(zhèn)網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、H5開發(fā)、商城系統(tǒng)網(wǎng)站開發(fā)、集團(tuán)公司官網(wǎng)建設(shè)、外貿(mào)網(wǎng)站建設(shè)、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為清鎮(zhèn)等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。這篇文章將為大家詳細(xì)講解有關(guān)Python 利用Timer定時(shí)器控制函數(shù)在特定時(shí)間執(zhí)行,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對(duì)相關(guān)知識(shí)有一定的了解。
Thread類有一個(gè)Timer子類,該子類可用于控制指定函數(shù)在特定時(shí)間內(nèi)執(zhí)行一次。例如如下程序:
from threading import Timer def hello(): print("hello, world") # 指定10秒后執(zhí)行hello函數(shù) t = Timer(10.0, hello) t.start()
上面程序使用 Timer 控制 10s 后執(zhí)行 hello 函數(shù)。
需要說明的是,Timer 只能控制函數(shù)在指定時(shí)間內(nèi)執(zhí)行一次,如果要使用 Timer 控制函數(shù)多次重復(fù)執(zhí)行,則需要再執(zhí)行下一次調(diào)度。
如果程序想取消 Timer 的調(diào)度,則可調(diào)用 Timer 對(duì)象的 cancel() 函數(shù)。例如,如下程序每 1s 輸出一次當(dāng)前時(shí)間:
from threading import Timer import time # 定義總共輸出幾次的計(jì)數(shù)器 count = 0 def print_time(): print("當(dāng)前時(shí)間:%s" % time.ctime()) global t, count count += 1 # 如果count小于10,開始下一次調(diào)度 if count < 10: t = Timer(1, print_time) t.start() # 指定1秒后執(zhí)行print_time函數(shù) t = Timer(1, print_time) t.start()
上面程序開始運(yùn)行后,程序控制 1s 后執(zhí)行 print_time() 函數(shù)。print_time() 函數(shù)中的代碼會(huì)進(jìn)行判斷,如果 count 小于 10,程序再次使用 Timer 調(diào)度 1s 后執(zhí)行 print_time() 函數(shù),這樣就可以控制 print_time() 函數(shù)多次重復(fù)執(zhí)行。
在上面程序中,由于只有當(dāng) count 小于 10 時(shí)才會(huì)使用 Timer 調(diào)度 1s 后執(zhí)行 print_time() 函數(shù),因此該函數(shù)只會(huì)重復(fù)執(zhí)行 10 次。
關(guān)于Python 利用Timer定時(shí)器控制函數(shù)在特定時(shí)間執(zhí)行就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。