在日常编程中,我们经常需要让程序在特定时间后执行某个操作,比如5秒后发送提醒、每天凌晨清理缓存等。在 Python 中,threading 模块提供的 Timer 类是一个简单而强大的工具,用于实现延时执行或一次性定时任务。本文将详细讲解如何使用 threading.Timer,即使是编程小白也能轻松上手!

Timer 是 Python 标准库 threading 模块中的一个类,它继承自 Thread。它的作用是在指定的延迟时间(单位:秒)之后,自动执行一个函数。
关键特点:
cancel())创建一个 Timer 对象的基本语法如下:
from threading import Timert = Timer(interval, function, args=None, kwargs=None)参数说明:
interval:延迟时间(秒),例如 3 表示 3 秒后执行function:要执行的函数名(不要加括号)args:传递给函数的位置参数,以元组形式(可选)kwargs:传递给函数的关键字参数,以字典形式(可选)下面是一个最简单的例子,5秒后打印一条欢迎信息:
import timefrom threading import Timerdef welcome(): print("Hello! 欢迎使用 Python Timer 定时器!")# 创建一个5秒后执行 welcome 函数的定时器my_timer = Timer(5, welcome)# 启动定时器my_timer.start()print("定时器已启动,5秒后将打印欢迎信息...")# 主线程继续运行(不会被阻塞)time.sleep(7) # 等待足够时间,确保看到输出运行结果:
定时器已启动,5秒后将打印欢迎信息...Hello! 欢迎使用 Python Timer 定时器!
如果目标函数需要参数,可以通过 args 或 kwargs 传递:
from threading import Timerdef send_email(to, subject="提醒"): print(f"发送邮件给 {to},主题:{subject}")# 使用 args 传递位置参数email_timer = Timer(2, send_email, args=("user@example.com",))# 或者使用 kwargs 传递关键字参数# email_timer = Timer(2, send_email, kwargs={"to": "user@example.com", "subject": "系统通知"})email_timer.start()print("邮件将在2秒后发送...")在定时器触发前,你可以调用 cancel() 来取消它:
from threading import Timerimport timedef alert(): print("⚠️ 超时警告!")# 设置一个10秒的超时提醒timer = Timer(10, alert)timer.start()print("等待5秒...")time.sleep(5)# 在5秒后取消定时器timer.cancel()print("定时器已被取消,不会触发警告。")注意:Timer 本身只执行一次。但你可以通过在函数内部重新创建并启动一个新的 Timer 来实现循环效果:
from threading import Timerimport timecount = 0def repeat_task(): global count count += 1 print(f"第 {count} 次执行任务") # 如果还想继续循环,就再创建一个 Timer if count < 5: Timer(2, repeat_task).start()# 启动第一次任务Timer(2, repeat_task).start()print("开始循环任务,每2秒执行一次,共5次...")# 等待足够时间time.sleep(12)⚠️ 注意:这种方式会创建多个线程,不适合高频或长期运行的任务。对于复杂场景,建议使用 sched 模块、APScheduler 库或操作系统级的定时任务(如 cron)。
time.sleep() 或 join())。asyncio 或 C 扩展)。通过本文,你已经掌握了 Python Timer 定时器 的基本用法,包括创建、启动、传参、取消以及实现简单循环任务。它是处理一次性延时任务的轻量级解决方案,非常适合脚本自动化、简单提醒等场景。
记住核心关键词:Python Timer定时器、Python定时任务、threading.Timer教程、Python延时执行。掌握这些,你就能在项目中灵活运用定时功能了!
动手试试吧!修改上面的代码,打造属于你自己的定时小工具!
本文由主机测评网于2025-12-14发表在主机测评网_免费VPS_免费云服务器_免费独立服务器,如有疑问,请联系我们。
本文链接:https://vpshk.cn/2025127819.html