如何将参数传递给计划?
我想要调用的函数:
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)?
一般来说,你可以这样做:
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)
| 归档时间: |
|
| 查看次数: |
4797 次 |
| 最近记录: |