Python TypeError: first arg must be callable

在寫排程任務時遇到錯誤

import schedule
import time

def job():
    print("start job")
    print("hello")

schedule.every().day.at("13:01").do(job())

while True:
    schedule.run_pending()
    time.sleep(2)

查看 do 這個方法長什麼樣

def do(self, job_func: Callable, *args, **kwargs):

self 代表調用函數的實例,job_func才是第一個參數,也就是要執行的方法。

schedule.every().day.at("13:01").do(job)

方法名不帶括號就可以執行成功,帶括號代表方法的返回值,不帶括號代表方法本身。

發佈留言