Python: kod idozitett futtatasa n alkalommal

Talaltam egy egyszeru es alkalmankent hasznos kodot, ha pl egy eljarast adott idozitessel, n alkalommal szeretnenk futtatni - parameterek nelkul.


#!/usr/bin/env python
#-*- coding: utf-8 -*-

from threading import Event, Thread
 
class RepeatTimer(Thread):
    def __init__(self, interval, function, iterations=0, args=[], kwargs={}):
        Thread.__init__(self)
        self.interval = interval
        self.function = function
        self.iterations = iterations
        self.args = args
        self.kwargs = kwargs
        self.finished = Event()
 
    def run(self):
        count = 0
        while not self.finished.is_set() and (self.iterations <= 0 or count < self.iterations):
            self.finished.wait(self.interval)
            if not self.finished.is_set():
                self.function(*self.args, **self.kwargs)
                count += 1
 
    def cancel(self):
        self.finished.set()
'''
Az alkalmazasanal ketto vagy harom parametert kell megadni: az idozitest masodpercben,
az eljaras amit futtasson es opcionalisan a futtatasok szama. 
Ha nem adjuk meg a futattassok szamat, akkor folyamatosan fog futni, az adott idozitessel.
pl:
'''

def HelloWorld():
	print 'Hello World!'

if __name__ == "__main__":
	r = RepeatTimer(1.0, HelloWorld, 3)
	r.start()