2
Q
按參數傳遞參數
A
回答
3
一般有這樣的事情,你總是可以做到這一點:
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!'))
相關問題
謝謝你的幫助。我新使用lamda函數,你能告訴我如何使用它以及何時使用它?我用do(job(param1,param2)),但它是錯誤的。做什麼(job(param1,param2))和do(lambda:job('Hello','world!'))有什麼不同?謝謝 –
'lambda:...'返回一個沒有參數的函數,類似於'def function_name():return ...',但它可以讓你縮短代碼長度。 'do(job(param1,param2))'立即調用'job(param1,param2)'並將結果傳遞給'do',這是沒有意義的。 –
是否像在Java或C#中返回void函數?所以它不會返回任何東西? –