denghaifu 发表于 2022-6-2 05:53:41

第44讲中的代码,不显示‘总共运行了多少秒’这句话

本帖最后由 denghaifu 于 2022-6-2 13:51 编辑

各位大神,帮忙想想是什么问题,我把44课的代码原封输入到‘jupyter notebook’ 中,运行程序时,不显示‘总共运行了多少秒’这句话,后来我又输入到‘idle’中,也不显示这句话,是什么原因?,谢谢

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)


补充了一下代码,谢谢

wp231957 发表于 2022-6-2 06:21:00

不放代码,你这些话和没说也是一个样子

Twilight6 发表于 2022-6-2 07:51:17



问问题最基本的是要描述清楚问题是什么,要自己将问题前置内容附带上,论坛鱼油们才能更好的解决问题

拷贝、黏贴代码 Ctrl + C 、Ctrl + V 各一下,不会浪费你多少时间,反而可以有助于你更快解决问题

临时号 发表于 2022-6-3 18:21:15

类如果要使用的话需要实例化为对象
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)

# 实例化MyTimer这个类
time = MyTimer()
time.start()
t.sleep(5)# 这个地方要等待一下,不然不会输出"总共运行了多少秒"
time.stop()
页: [1]
查看完整版本: 第44讲中的代码,不显示‘总共运行了多少秒’这句话