我使用apscheduler,我试图在参数的处理函数被调用时,计划作业启动通过:参数传递到apscheduler处理函数
from apscheduler.scheduler import Scheduler
import time
def printit(sometext):
print "this happens every 5 seconds"
print sometext
sched = Scheduler()
sched.start()
sometext = "this is a passed message"
sched.add_cron_job(printit(sometext), second="*/5")
while True:
time.sleep(1)
这样做给了我下面的错误:
TypeError: func must be callable
是否可以将参数传递给函数处理程序。如果不是,有没有其他的选择?基本上,我需要每个计划作业返回一个字符串,我创建时间表时通过。谢谢!
甜它的作品!你认为你可以很快解释为什么这会起作用/这是如何修复错误的?谢谢! –
这是解释。您需要传递一个函数,即可以调用的函数。 def foo():传递“foo”是函数“foo()”是调用该函数的返回值。 –
@ still.Learning Python支持在运行时使用名为“lambda”的构造创建匿名函数(即未绑定到名称的函数)。 这是一个正常的功能 - > def f(h):return h ** 10, 这是一个lambda functin - > g = lambda h:h ** 10, 注意区别 ;) –