threading中定時器Timer 定時器功能:在設置的多少時間後執行任務,不影響當前任務的執行 經常使用方法 from threading import Timer t = Timer(interval, function, args=None, kwargs=None) # interval 設置的時間(s) # function 要執行的任務 # args,kwargs 傳入的參數 t.start() # 開啓定時器 t.cancel() # 取消定時器 簡單示例 import time from threading import Timer def task(name): print('%s starts time: %s'%(name, time.ctime())) t = Timer(3,task,args=('nick',)) t.start() print('end time:',time.ctime()) # 開啓定時器後不影響主線程執行,因此先打印 ------------------------------------------------------------------------------- end time: Wed Aug 7 21:14:51 2019 nick starts time: Wed Aug 7 21:14:54 2019 驗證碼示例:60s後驗證碼失效 import random from threading import Timer # 定義Code類 class Code: # 初始化時調用緩存 def __init__(self): self.make_cache() def make_cache(self, interval=60): # 先生成一個驗證碼 self.cache = self.make_code() print(self.cache) # 開啓定時器,60s後從新生成驗證碼 self.t = Timer(interval, self.make_cache) self.t.start() # 隨機生成4位數驗證碼 def make_code(self, n=4): res = '' for i in range(n): s1 = str(random.randint(0, 9)) s2 = chr(random.randint(65, 90)) res += random.choice([s1, s2]) return res # 驗證驗證碼 def check(self): while True: code = input('請輸入驗證碼(不區分大小寫):').strip() if code.upper() == self.cache: print('驗證碼輸入正確') # 正確輸入驗證碼後,取消定時器任務 self.t.cancel() break obj = Code() obj.check()
https://www.cnblogs.com/863652104kai/p/11541077.html#FeedBackhtml