|
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_ ...
|