星期天去散步 发表于 2021-9-8 10:44:58

44讲课上例题

import time as t

class 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

帮帮忙

星期天去散步 发表于 2021-9-8 10:47:31

怎么发悬赏{:10_266:}

傻眼貓咪 发表于 2021-9-8 11:03:39

你的 self.end 和 self.begin 都不是列表啊(你在 class MyTimer() 類裡面已經定義是整數啊)第 41 行 self.lasted.append(self.end - self.begin),請問 self.end 和 self.begin 怎麼索引訪問?

西瓜味的苹果 发表于 2021-9-8 11:07:54

星期天去散步 发表于 2021-9-8 10:47
怎么发悬赏

没事,不用悬赏

西瓜味的苹果 发表于 2021-9-8 11:10:31

星期天去散步 发表于 2021-9-8 10:47
怎么发悬赏

self.end - self.begin,这一段错了,你的end和begin都定义的是字符串,怎么能索引呢

西瓜味的苹果 发表于 2021-9-8 11:12:15

西瓜味的苹果 发表于 2021-9-8 11:10
self.end - self.begin,这一段错了,你的end和begin都定义的是字符串,怎么能索引呢

看错了,不是字符串,你定义的是整型,整型是不能索引的
页: [1]
查看完整版本: 44讲课上例题