计时器
import time as t #时间系数的常量定义
class 计时器():
def __init__(self): # __init__ 方法 用来对实例的属性进行初使化
self.unit = ["年","月","天","时","分","秒"]
self.prompt = "未开始计时!"
self.lasted = []
self.start = 0 #类的方法与属性 名字一样的话,属性会覆盖方法
self.stop = 0
def __str__(self): #重构str方法,让调用直接打印字符结果
return self.prompt #return 函数的返回值
__repr__ = __str__ # 重构__repr__方法后,不管直接输出对象还是通过print打印的信息都按我们__repr__方法中定义的格式进行显示了
#计算加法:
def __add__(self, other):
prompt = '总共运行了'
result = [] #建立一个存储列表result
for index in range(6):
result.append(self.lasted[index] + other.lasted[index]) #在储蓄列表result 两个时间函数相加
if result[index]:
prompt += (str(result[index]) + self.unit[index])
return prompt
#开始计时
def 开始(self):
self.start = t.localtime()
self.prompt = "提示,请先调用【结束()】停止计时"
print("计时开始....")
#停止计时
def 结束(self):
if not self.start : #如果self.start等于0则提示先开始计时
print("提示,请先调用【开始()】进行计时")
else:
self.stop = t.localtime()
self._calc() #调用内部方法
print("计时结束!")
#内部方法 计算运行时间
def _calc(self):
self.lasted = [] #建立(实例化)一个存储列表lasted
self.prompt = "总共运行了"
for index in range(6): # range()个函数可以创建一个数字元素组成的列表
self.lasted.append(self.stop[index]-self.start[index]) #在储蓄列表lasted内添加起始时间跟结束时间,且把相应数字进行互减
if self.lasted[index]: #判断储蓄列表是否为0如果储蓄列表index为0则不打印下面这一句
self.prompt += (str(self.lasted[index])+self.unit[index]) #转换计时时间为字符串,且跟字符串“总共运行了”相结合
# 为下一轮计时初始化变量
self.start = 0
self.stop = 0