传递参数以进行计划

Adi*_*oho 8 python schedule

如何将参数传递给计划

我想要调用的函数:

def job(param1, param2):
    print(str(param1) + str(param2))
Run Code Online (Sandbox Code Playgroud)

我如何安排它:

schedule.every(10).minutes.do(job)
Run Code Online (Sandbox Code Playgroud)

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

Ale*_*all 7

一般来说,你可以这样做:

schedule.every(10).minutes.do(lambda: job('Hello ', 'world!'))
Run Code Online (Sandbox Code Playgroud)

看源头:

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)
Run Code Online (Sandbox Code Playgroud)

我们看到你也可以这样做:

schedule.every(10).minutes.do(job, 'Hello ', 'world!')
Run Code Online (Sandbox Code Playgroud)

或者,正如代码所示,泛型lambda方法的替代方法是:

schedule.every(10).minutes.do(functools.partial(job, 'Hello ', 'world!'))
Run Code Online (Sandbox Code Playgroud)