Python的定时器
生活随笔
收集整理的這篇文章主要介紹了
Python的定时器
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
? ? ???在實際應用中,我們經常需要使用定時器去觸發一些事件。Python中通過線程實現定時器timer,其使用非常簡單。看示例:import threading
def fun_timer():
print('Hello Timer!')
timer = threading.Timer(1, fun_timer)
timer.start()輸出結果:Hello?Timer!Process?finished?with?exit?code?0注意,只輸出了一次,程序就結束了,顯然不是我們想要的結果??碩imer類中的解釋性描述:"""Call a function after a specified number of seconds"""一段時間后調用一個函數,但并沒有說要循環調用該函數。因此,修改如下:def fun_timer():
print('Hello Timer!')
global timer
timer = threading.Timer(5.5, fun_timer)
timer.start()
timer = threading.Timer(1, fun_timer)
timer.start()輸出結果:Hello?Timer!Hello?Timer!Hello?Timer!Hello?Timer!............定時器工作正常。
在使用Python定時器時需要注意如下4個方面:(1)定時器構造函數主要有2個參數,第一個參數為時間,第二個參數為函數名,第一個參數表示多長時間后調用后面第二個參數指明的函數。第二個參數注意是函數對象,進行參數傳遞,用函數名(如fun_timer)表示該對象,不能寫成函數執行語句fun_timer(),不然會報錯。用type查看下,可以看出兩者的區別。print(type(fun_timer()))
print(type(fun_timer))輸出結果:Hello?Timer!<class?'NoneType'><class?'function'>(2)必須在定時器執行函數內部重復構造定時器,因為定時器構造后只執行1次,必須循環調用。(3)定時器間隔單位是秒,可以是浮點數,如5.5,0.02等,在執行函數fun_timer內部和外部中給的值可以不同。如上例中第一次執行fun_timer是1秒后,后面的都是5.5秒后執行。(4)可以使用cancel停止定時器的工作,如下例:# -*- coding: utf-8 -*-import threadingimport time
def fun_timer():
print('Hello Timer!')
global timer
timer = threading.Timer(5.5, fun_timer)
timer.start()
timer = threading.Timer(1, fun_timer)
timer.start()
time.sleep(15) # 15秒后停止定時器
timer.cancel()輸出結果:Hello?Timer!Hello?Timer!Hello?Timer!Process?finished?with?exit?code?0
def fun_timer():
print('Hello Timer!')
timer = threading.Timer(1, fun_timer)
timer.start()輸出結果:Hello?Timer!Process?finished?with?exit?code?0注意,只輸出了一次,程序就結束了,顯然不是我們想要的結果??碩imer類中的解釋性描述:"""Call a function after a specified number of seconds"""一段時間后調用一個函數,但并沒有說要循環調用該函數。因此,修改如下:def fun_timer():
print('Hello Timer!')
global timer
timer = threading.Timer(5.5, fun_timer)
timer.start()
timer = threading.Timer(1, fun_timer)
timer.start()輸出結果:Hello?Timer!Hello?Timer!Hello?Timer!Hello?Timer!............定時器工作正常。
在使用Python定時器時需要注意如下4個方面:(1)定時器構造函數主要有2個參數,第一個參數為時間,第二個參數為函數名,第一個參數表示多長時間后調用后面第二個參數指明的函數。第二個參數注意是函數對象,進行參數傳遞,用函數名(如fun_timer)表示該對象,不能寫成函數執行語句fun_timer(),不然會報錯。用type查看下,可以看出兩者的區別。print(type(fun_timer()))
print(type(fun_timer))輸出結果:Hello?Timer!<class?'NoneType'><class?'function'>(2)必須在定時器執行函數內部重復構造定時器,因為定時器構造后只執行1次,必須循環調用。(3)定時器間隔單位是秒,可以是浮點數,如5.5,0.02等,在執行函數fun_timer內部和外部中給的值可以不同。如上例中第一次執行fun_timer是1秒后,后面的都是5.5秒后執行。(4)可以使用cancel停止定時器的工作,如下例:# -*- coding: utf-8 -*-import threadingimport time
def fun_timer():
print('Hello Timer!')
global timer
timer = threading.Timer(5.5, fun_timer)
timer.start()
timer = threading.Timer(1, fun_timer)
timer.start()
time.sleep(15) # 15秒后停止定時器
timer.cancel()輸出結果:Hello?Timer!Hello?Timer!Hello?Timer!Process?finished?with?exit?code?0
總結
以上是生活随笔為你收集整理的Python的定时器的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 你应该知道的print
- 下一篇: Python的操作符重载