Un peu d'exercice. Si vous souhaitez ajouter une fonction, vous pouvez l'ajouter autant que vous le souhaitez, mais ce n'est pas nécessaire, du moins. Le problème avec Temp est que le traitement interne prend un peu de temps, mais il n'y a aucune motivation pour l'améliorer.
import time
class StopWatchLite(object):
    def __init__(self) :
        self.make = time.time()
        return
    def start(self) :
        self.st = time.time()
        return self
    def stop(self) :
        return time.time()-self.st
    def reset(self) :
        self.st = self.make
        return self
    def __str__(self) :
        return str( self.stop() )
class StopWatchTemp(object):
    """
    this can stop counting time temporally.
    """
    def __init__( self, verbose=0) :
        self.make = time.time()
        self.stac = []
        self.stat = "standby"
        self.verbose = verbose
        return
    def start(self) :
        self.stac = []
        self.stat = "running"
        self.st = time.time()
        return self
    def stop(self) :
        (self.stac).append( time.time() - self.st )
        self.stat = "stopped"
        return sum( _ for _ in self.stac )
    def reset(self) :
        self.st = self.make
        self.stat = "standby"
        self.stac = []
        return self
    def restart(self) :
        if   self.stat == "stopped" :
            self.stat = "running"
            self.st = time.time()
        elif self.stat == "standby" :
            if self.verbose >= 2 :
                print "start->stop->restart"
            if self.verbose >= 1 :
                print "regarding 'restart' as 'start'."
            return self.start()
        elif self.stat == "running" :
            if self.verbose >= 2 :
                print "start->stop->restart"
            if self.verbose >= 1 :
                print "regarding 'restart' as 'reset' and 'start'."
            return self.reset().start()
    def __str__(self) :
        return str( stop() )
def test():
    def wast_function(n):
        [ i for i in xrange(n) ]
    s = StopWatchLite()
    s.start()
    wast_function(1000000)
    t1 = s.stop()
    s.start()
    wast_function(1000000)
    t2 = s.stop()
    print t1,t2
    s = StopWatchTemp()
    s.start()
    wast_function(1000000)
    s.stop()
    s.restart()
    wast_function(1000000)
    t1 = s.stop()
    print t1
if __name__ == "__main__" :
    test()