如何在 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 模块调用方法?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 dbms_scheduler 在 oracle 中禁用作业