[Tutor] Making a function run every second.

Dave Angel d at davea.name
Tue Nov 29 16:33:41 CET 2011


(You put your response in the wrong place;  it belongs after the part 
you're quoting.)
he
On 11/29/2011 10:19 AM, bodsda at googlemail.com wrote:
> You won't get it exactly on because the time it takes to call the function will affect your trigger time.
>
> I would use something like an infinite loop with a 1 second sleep after the function call
>
> Bodsda
> Sent from my BlackBerry® wireless device
>
> -----Original Message-----
> From: "Mic"<o0MB0o at hotmail.se>
> Sender: tutor-bounces+bodsda=googlemail.com at python.org
> Date: Tue, 29 Nov 2011 15:54:59
> To:<tutor at python.org>
> Subject: [Tutor] Making a function run every second.
>
> Hi
>
> I want a function to run every second , how do I do that?
>
> Say that the function look like this:
>
> def hi():
>      print("hi")
>
>
> Thanks!
>
>
> Mic
Without a clearer spec, there are too many possible answers.  As Bobsda 
says, you can't get it exactly one second apart.  But you also have the 
problem of whether a drift is okay.  For example, if you have a global 
you're incrementing each time that function runs, and you want it to 
represent the total time the program has been running, then a simple 
sleep() is totally wrong.

What I was concerned about is that perhaps this is for one of the 
tkinter programs Mic is writing.  For an event-driven program, sleep() 
calls of even a second are unaccepable.  And if you literally write a 
while loop like that, your whole program would stop responding.

So Mik:
Tell us more about the real requirements.  Is drift acceptable, is this 
a console program or some gui environment, are there any other hidden 
assumptions?

-- 

DaveA



More information about the Tutor mailing list