传递参数给调度

Pass parameters to schedule

如何将参数传递给 schedule

我想要调用的函数:

def job(param1, param2):
    print(str(param1) + str(param2))

我如何安排:

schedule.every(10).minutes.do(job)

如何将参数传递给 do(job)

一般情况下,你总是可以这样做:

schedule.every(10).minutes.do(lambda: job('Hello ', 'world!'))

查看来源:

def do(self, job_func, *args, **kwargs):
    """Specifies the job_func that should be called every time the
    job runs.
    Any additional arguments are passed on to job_func when
    the job runs.
    :param job_func: The function to be scheduled
    :return: The invoked job instance
    """
    self.job_func = functools.partial(job_func, *args, **kwargs)

我们发现您也可以这样做:

schedule.every(10).minutes.do(job, 'Hello ', 'world!')

或者,如代码所示,通用 lambda 方法的替代方法是:

schedule.every(10).minutes.do(functools.partial(job, 'Hello ', 'world!'))
schedule.every(10).minutes.do(job, 'do something', 'like this')

我朋友试过上面的语法但是不行,所以如果不行你可以使用

schedule.every(10).minutes.do(job('do something', 'like this'))

他的日程表不是这样的,完全是这样的-

schedule.every().monday.at('8:30')do(job('It was', 'like this'))