estoy usando apscheduler y yo estoy tratando de pasar parámetros a la función de controlador que se llama cuando se inicia el trabajo programado:paso de parámetros a apscheduler función de controlador
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)
Hacer esto me da el siguiente error:
TypeError: func must be callable
Es posible pasar parámetros al controlador de funciones. Si no, ¿hay alguna alternativa? Básicamente, necesito que cada trabajo programado devuelva una cadena que paso cuando creo el calendario. ¡Gracias!
dulce que funciona! ¿Crees que puedes explicar rápidamente por qué funciona esto/cómo se corrige el error? ¡Gracias! –
Se explica. Necesita pasar una función, es decir, algo que pueda llamarse. def foo(): pass "foo" es la función "foo()" es el valor de retorno de llamar a esa función. –
@ still.Learning Python admite la creación de funciones anónimas (es decir, funciones que no están vinculadas a un nombre) en tiempo de ejecución, utilizando una construcción llamada "lambda". Esta es una función normal -> def f (h): return h ** 10, y esta es una función lambda -> g = lambda h: h ** 10, observe la diferencia ;) –