python特定時間執行_Python Timer定時器:控制函式在特定時間執行
阿新 • • 發佈:2021-02-15
技術標籤:python特定時間執行
Thread 類有一個 Timer子類,該子類可用於控制指定函式在特定時間內執行一次。例如如下程式:
from threading import Timerdef hello(): print("hello, world")# 指定10秒後執行hello函式t = Timer(10.0, hello)t.start()
上面程式使用 Timer 控制 10s 後執行 hello 函式。
需要說明的是,Timer 只能控制函式在指定時間內執行一次,如果要使用 Timer 控制函式多次重複執行,則需要再執行下一次排程。如果程式想取消 Timer 的排程,則可呼叫 Timer 物件的 cancel() 函式。例如,如下程式每 1s 輸出一次當前時間:
from threading import Timerimport time# 定義總共輸出幾次的計數器count = 0def print_time(): print("當前時間:%s" % time.ctime()) global t, count count += 1 # 如果count小於10,開始下一次排程 if count < 10: t = Timer(1, print_time) t.start()# 指定1秒後執行print_time函式t = Timer(1, print_time)t.start()
上面程式開始執行後,程式控制 1s 後執行 print_time() 函式。print_time() 函式中的程式碼會進行判斷,如果 count 小於 10,程式再次使用 Timer 排程 1s 後執行 print_time() 函式,這樣就可以控制 print_time() 函式多次重複執行。
在上面程式中,由於只有當 count 小於 10 時才會使用 Timer 排程 1s 後執行 print_time() 函式,因此該函式只會重複執行 10 次。