如何在 python 中使用 schedule 模块调用方法?

Posted

技术标签:

【中文标题】如何在 python 中使用 schedule 模块调用方法?【英文标题】:How to call methods using schedule module in python? 【发布时间】:2022-01-23 11:57:44 【问题描述】:

我们可以像这样使用调度调用一个简单的函数

import schedule
def wake_up():
    print("Wake Up! It's 8:00")
schedule.every().day.at("08:00").do(wake_up)
while True:
    schedule.run_pending()

但是当我创建一个类并调用一个方法时

import schedule
class Alarm():
    def wake_up(self):
        print("Wake Up!")
alarm=Alarm()
schedule.every().day.at("08:00").do(alarm.wake_up())
while True:
    schedule.run_pending()

我明白了

TypeError: the first argument must be callable

【问题讨论】:

【参考方案1】:

alarm.wake_up() 替换为alarm.wake_up

当您添加括号时,您实际上调用并执行了方法wake_up。但是,当您只执行alarm.wake_up 时,它会创建对该方法的引用,而这正是调度模块想要的。

更改在第 7 行:

import schedule
class Alarm():
    def wake_up(self):
        print("Wake Up!")

alarm=Alarm()
schedule.every().day.at("08:00").do(alarm.wake_up)

while True:
    schedule.run_pending()

【讨论】:

以上是关于如何在 python 中使用 schedule 模块调用方法?的主要内容,如果未能解决你的问题,请参考以下文章

如何在Python中优化计算大数

如何使用 dbms_scheduler 在 oracle 中禁用作业

如何在 Oracle 中使用 DBMS_SCHEDULER 删除文件

python 定时器schedule执行任务

在 Python 中使用定时器

当第一个数字较小时,模运算如何工作?