44讲课上例题
import time as tclass MyTimer():
def __init__(self):
self.unit = ['年','月','天','小时','分钟','秒']
self.prompt = "未开始计时!"
self.lasted = []
self.begin = 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.lasted + other.lasted)
if result:
prompt += (str(result) + self.unit)
return prompt
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 - self.begin)
if self.lasted:
self.prompt += (str(self.lasted) + self.unit)
self.begin = 0
self.end = 0
出错:
>>> t1 = MyTimer()
>>> t1
未开始计时!
>>> t1.stop()
提示:请先调用start()开始计时!
>>> t1.start()
计时开始...
>>> t1.stop()
Traceback (most recent call last):
File "<pyshell#4>", line 1, in <module>
t1.stop()
File "D:\小甲鱼学习\时间.py", line 34, in stop
self._calc()
File "D:\小甲鱼学习\时间.py", line 41, in _calc
self.lasted.append(self.end - self.begin)
TypeError: 'int' object is not subscriptable
帮帮忙 怎么发悬赏{:10_266:} 你的 self.end 和 self.begin 都不是列表啊(你在 class MyTimer() 類裡面已經定義是整數啊)第 41 行 self.lasted.append(self.end - self.begin),請問 self.end 和 self.begin 怎麼索引訪問? 星期天去散步 发表于 2021-9-8 10:47
怎么发悬赏
没事,不用悬赏 星期天去散步 发表于 2021-9-8 10:47
怎么发悬赏
self.end - self.begin,这一段错了,你的end和begin都定义的是字符串,怎么能索引呢 西瓜味的苹果 发表于 2021-9-8 11:10
self.end - self.begin,这一段错了,你的end和begin都定义的是字符串,怎么能索引呢
看错了,不是字符串,你定义的是整型,整型是不能索引的
页:
[1]