Hilo de Python. El temporizador comienza de inmediato, no a la hora especificada.

Quiero ejecutar una función en cada 3 segundos, el código funciona si llamo a una función sin argumentos como los siguientes:

def mytempfunc(): print "this is timer!" threading.Timer(5, mytempfunc).start() 

pero si llamo a una función con un argumento como este:

 def myotherfunc(a,b,c,d): print "this is timer!" threading.Timer(5, myotherfunc(a,b,c,d)).start() 

El nuevo hilo se creará y comenzará inmediatamente sin esperar 5 segundos. ¿hay algo que me perdí?

Prueba esto:

 threading.Timer(5, myotherfunc, [a,b,c,d]).start() 

En su código, realmente llama a myotherfunc (a, b, c, d), en lugar de pasar su función y argumentos a la clase Timer .