【问题标题】:How to call methods using schedule module in python?如何在 python 中使用 schedule 模块调用方法?
【发布时间】: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

【问题讨论】:

    标签: python oop schedule


    【解决方案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()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-01-07
      • 2021-06-10
      • 1970-01-01
      • 2014-09-02
      • 2010-10-30
      • 2019-09-07
      • 1970-01-01
      • 2015-08-23
      相关资源
      最近更新 更多