如何将参数传递给schedule?
我想要调用的函数:
def job(param1, param2):
print(str(param1) + str(param2))
我如何安排:
schedule.every(10).minutes.do(job)
如何将参数传递给do(job)
?
答案 0 :(得分:7)
一般来说,你可以这样做:
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!'))
答案 1 :(得分:1)
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'))