[PYTHON] Stoppuhr

Eine kleine Übung. Wenn Sie eine Funktion hinzufügen möchten, können Sie sie beliebig hinzufügen, dies ist jedoch zumindest nicht erforderlich. Das Problem mit Temp ist, dass die interne Verarbeitung etwas Zeit in Anspruch nimmt, es jedoch keine Motivation gibt, sie zu verbessern.

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()

Recommended Posts

Stoppuhr
Es ist eine Stoppuhr