xizi123 发表于 2020-11-19 23:51:10

计时器优化问题

本帖最后由 xizi123 于 2020-11-20 00:01 编辑

求大神指教:
问题1,为什么在stop()函数中,不能用self.prompt来做提示,而必须用print来打印提示内容(标红的句子)
问题2,在计时器中含有负数时,优化可否用我的方法,是否可行?
谢谢!!!
import time
class MyTime():
       def __init__(self):
            self.begin =0
            self.end = 0
            self.lasted = []
            self.unit = ['年','月','天','小时','分钟','秒']
            self.prompt = '提示:程序未运行'
            self.zh =
       def start(self):
            self.begin = time.localtime()
            self.prompt ='提示:请先运行stop()程序'
            print('计时开始......')

       def stop(self):
            if self.begin:
                     self.end = time.localtime()
                     self.prompt = '计时结束'
                     self._calc()
            else:
                   print('提示:请先运行start()程序')
       #内部程序,计算时间
       def _calc(self):
            
            self.prompt = '程序共运行了'

       #转换带有负数的时间
       #由地位向高位依次按照 负数时间加上进率时间 在向上一位借1的思路进行计算
            dd= []
            temp = []
            count = 0
            for index in range(6):
                     temp.append(self.end-self.begin)
            for index in range(6):
                     if temp < 0:
                            dd.append(temp + self.zh +count)
                           
                            count = -1

                     else:
                            dd.append(temp+count)
                            count = 0
            dd.reverse()
            print('dd = ',dd)
            self.lasted = dd[:]




            
            
            for index in range(6):
                     

                     if self.lasted:
                            self.prompt += str(self.lasted) + self.unit

            print(self.prompt)
            self.begin = 0
            self.end = 0

       def __str__(self):
            return self.prompt

       __repr__ = __str__

       def __add__ (self,other):
            result = []
            prompt = '程序共运行了'
            for index in range(6):
                     result.append(self.lasted+other.lasted)
                     if result:
                            prompt += str(result) + self.unit
            print(prompt)


suchocolate 发表于 2020-11-22 12:33:42

本帖最后由 suchocolate 于 2020-11-22 13:58 编辑

{:10_277:}
页: [1]
查看完整版本: 计时器优化问题