季夏。。。 发表于 2022-10-24 16:35:35

魔法方法里面的-简单定制

import time

class MyTimer():

    def __init__(self):
      self.unit = ['年','月','天','小时','分钟','秒']
      self.prompt = '未开始计时'
      self.lasted = []
      self.begin = 0
      self.end = 0

    def __str__(self):
      return self.prompt

    def __and__(self, other):
      prompt="总共运行时间"
      result =[]
      for index in range(6):
            result.append(self.lasted + other.lasted)
            if result:
                prompt += (str(result) + self.unit)
      return prompt

    __repr__ = __str__
    def start(self):
      self.begin=time.localtime()
      self.prompt =("提示:请先调用stop()停止计时!")
      print("计时开始...")

    def stop(self):
      if not self.begin:
            print("提示:请先调用start()开始计时!")
      else:
            self.end = time.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()


我运行代码,结果终端什么都没显示,有没有人知道为什么呀?

jackz007 发表于 2022-10-24 16:55:57

本帖最后由 jackz007 于 2022-10-24 17:20 编辑

import time

class MyTimer():

    def __init__(self):
      self.unit = ['年','月','天','小时','分钟','秒']
      self.prompt = '未开始计时'
      self.lasted = []
      self.begin = 0
      self.end = 0

    def __str__(self):
      return self.prompt

    def __and__(self, other):
      prompt="总共运行时间"
      result =[]
      for index in range(6):
            result.append(self.lasted + other.lasted)
            if result:
                prompt += (str(result) + self.unit)
      return prompt

    __repr__ = __str__
    def start(self):
      self.begin=time.localtime()
      self.prompt =("提示:请先调用stop()停止计时!")
      print("计时开始...")

    def stop(self):
      if not self.begin:
            print("提示:请先调用start()开始计时!")
      else:
            self.end = time.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()
t . start()
for _ in range(50000000):
    pass
t . stop()
print(t1)
      运行实况:
D:\\Python>python x.py
计时开始...
计时结束
总共运行了8秒

D:\\Python>
页: [1]
查看完整版本: 魔法方法里面的-简单定制