You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用schedule模块定时提醒喝水遇执行异常与TypeError报错求助

问题分析与解决

你的代码存在两个核心错误:

1. 错误传递函数引用

schedule.every().day.at("16:35").do(remindDrink()) 里的 remindDrink() 是直接执行函数,而非传递函数本身。do() 方法要求传入可调用的函数对象,而你传入的是函数执行后的返回值(此处remindDrink()返回None,不属于可调用对象),这既导致函数立即执行,也触发了TypeError: the first argument must be callable错误。

2. 缺少任务调度核心逻辑

你的while循环会重复添加同一个定时任务,且未调用schedule.run_pending()——这是schedule模块检查任务是否到点执行的核心方法,没有它定时任务永远不会触发。


修正后的代码

import schedule
import time

def remindDrink():
    print("Drink Water")

# 仅添加一次任务,不要放在循环内
schedule.every().day.at("16:35").do(remindDrink)

while True:
    # 检查是否有到点的任务需要执行
    schedule.run_pending()
    # 休眠1秒,避免占用过多CPU资源
    time.sleep(1)

内容的提问来源于stack exchange,提问作者Illusioner_

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 05:18:19