python——初級定時器
阿新 • • 發佈:2019-01-30
import time as t class MyTimer(): def __init__(self): self.unit=['year','month','day','hour','minute','sec'] self.prompt='未開始'; self.lasted=[] self.begin=0 self.end=0 def __str__(self): return self.prompt __repr__=__str__ def __add__(self,other): prompt="totle time:" result=[] for index in range(6): result.append(self.lasted[index]+other.lasted[index]) if result[index]: prompt+=(str(result[index])+self.unit[index]) return prompt #start def start(self): self.begin=t.localtime() self.prompt='please stop'; print('start') #end def stop(self): if not self.begin: print('please start') else: self.end=t.localtime() self._calc() print('end') #inner function calulate runtime def _calc(self): self.lasted=[] self.prompt='runtime:' for index in range(6): self.lasted.append(self.end[index]-self.begin[index]) if self.lasted[index]: self.prompt+=(str(self.lasted[index])+self.unit[index]) print(self.prompt) self.begin=0 self.end=0
>>> t1=MyTimer() >>> t1.start() start >>> t2.stop() Traceback (most recent call last): File "<pyshell#63>", line 1, in <module> t2.stop() NameError: name 't2' is not defined >>> t1.stop() runtime:10sec end >>> t2=MyTimer() >>> t2.start() start >>> t2.stop() runtime:4sec end >>> t1+t2 'totle time:14sec' >>>
有時候會出現負數,以後再改吧……