|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
代码如下:
import time as t
class Mytime():
def __init__(self):
self.prompt = '未开始计时'
self.lasted = []
self.beg = 0
self.end = 0
self.unit = ['年','月','日','小时','分','秒']
def __str__(self):
return self.prompt
def __repr__(self):
return self.prompt
def __add__(self,other):
prompt = '总共运行了'
result = []
for each in range(6):
result.append(self.lasted[each] + other.lasted[each])
if result[each] != 0:
prompt += (str(result[each]) + self.unit[each])
return prompt
def start(self):
#开始计时
self.beg = t.localtime()
self.prompt = '请先停止计时'
print('开始')
def stop(self):
#结束计时
if self.beg == 0:
print('请先开始计时')
else:
self.end = t.localtime()
self._calc()
print('停止')
def _calc(self):
#内部方法,计算运行时间
self.prompt = '总共运行了'
for each in range(6):
self.lasted.append(self.end[each] - self.beg[each])
if self.lasted[each] < 0:
self.lasted[each] += 60
self.lasted[each - 1] -= 1
else:
pass
if self.lasted[each] != 0:
self.prompt += (str(self.lasted[each]) + self.unit[each])
else:
pass
#初始化
self.beg = 0
self.end = 0
问题出在红字部分,即
if self.lasted[each] < 0:
self.lasted[each] += 60
self.lasted[each - 1] -= 1
运行结果如下:>>> t1 = Mytime()
>>> t1.start()
开始
>>> t1.stop()
停止
>>>
>>> t1
总共运行了1分19秒
事实上只运行了19秒
判断成立后,为什么self.lasted[each] += 60这行执行了, self.lasted[each - 1] -= 1这行却没有执行?
|
|