| 
 | 
 
3鱼币 
 本帖最后由 wuyanzulqq 于 2020-11-23 09:32 编辑  
- 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 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._count()
 
 -             print("计时结束!")
 
  
-     #计算差值
 
 -     def _count(self):
 
 -         self.lasted = []
 
 -         self.prompt = '一共运行了'
 
 -         for index in range(6):
 
 -             self.lasted.append(self.end[index] - self.begin[index])
 
 -             if self.lasted[index]:
 
 -                 self.prompt += (str(self.lasted[index]) + self.unit[index])
 
  
 
  复制代码 
 
求大佬解释一下   def __str__(self): 
        return self.prompt 
 
    __repr__ = __str__这块代码 越详细越好
1.这两个函数都是内置函数,魔法方法,功能差不多,__str__本质是调用__repr__的 
2.__str__相当于在你实例类的时候,自动执行的函数,就比如__init__是初始化类变量的功能,__str__日常所做的通俗的就是print了, 
3.怎么跟你形容,就是类是人体,__str__,__init__,是里面的器官,只要你生下来那一刻,器官就随着你的出生而自动出生,并做属于自己的功能。 
4.至于__repr__=__str__,就是让两个函数相同,你去掉这句也行,把__str__换成__repr__,效果也是一样的 
5.如果有错误,尽情指正 
 
 
 |   
 
 
最佳答案
查看完整内容 
1.这两个函数都是内置函数,魔法方法,功能差不多,__str__本质是调用__repr__的
2.__str__相当于在你实例类的时候,自动执行的函数,就比如__init__是初始化类变量的功能,__str__日常所做的通俗的就是print了,
3.怎么跟你形容,就是类是人体,__str__,__init__,是里面的器官,只要你生下来那一刻,器官就随着你的出生而自动出生,并做属于自己的功能。
4.至于__repr__=__str__,就是让两个函数相同,你去掉这句也行,把__str_ ... 
 
 
 
 
 
 
 |