|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
给我报这个错,是代码哪里有问题“
Traceback (most recent call last):
File "<pyshell#11>", line 1, in <module>
t1.stop()
File "C:\Users\Administrator.SD-20190304TZGG\Desktop\timer.py", line 32, in stop
self._calc()
File "C:\Users\Administrator.SD-20190304TZGG\Desktop\timer.py", line 39, in _calc
self.lasted.append(self.end[index]-self.begin[index])
TypeError: 'int' object is not subscriptable
以下是代码:
import time as t
class MyTimer():
def __init__(self):
self.unit=['年','月','天','小时','分钟','秒']
self.prompt='未开始计时'
self.lasted=[]
self.begin=0 #为什么last是一个数组,而begin 和end 是整数0?
self.end=0
def __str__(self):
return self.prompt
__repr__=__str__
def __add__(self,other):
prompt='总共运行了'
result=[]
for index in range(6):
result.append(self.last[index]+other.lasted[index])
#开始计时
def start(self):
self.begin=t.localtime()
self.prompt='提示:请先调用stop()停止计时!'
print('计时开始…')
#计时结束
def stop(self):
if not self.begin:
print('提示:请先用start()开始计时!')
else:
self.end=t.localtime()
self._calc()
print('计时结束!')
#内部方法,计算运行时间(内部方法:方法前面加一个下横线即可)
def _calc(self):
self.lasted=[]
self.prompt='总共运行了'
for index in range(6):
self.lasted.append(self.end[index]-self.begin[index])
if self.lasted[index]:
self.prompt+=(str(self.last[index])+self.unit[index])
#为下一轮计时初始化变量:
self.begin=0
self.end=0
_calc 方法的最后两行的缩进不对,应该是和for一个层次,而不是for内的程序。在for循环结束后才将begin和end清零
|
|