鱼C论坛

 找回密码
 立即注册
查看: 2341|回复: 1

[已解决]第44讲 视频讲的代码有个地方不懂

[复制链接]
发表于 2020-11-23 09:30:52 | 显示全部楼层 |阅读模式
3鱼币
本帖最后由 wuyanzulqq 于 2020-11-23 09:32 编辑
  1. import time as t

  2. class MyTimer():
  3.     def __init__(self):
  4.         self.unit = ['年','月','天','小时','分钟','秒']
  5.         self.prompt = "未开始运行"
  6.         self.lasted = []
  7.         self.begin = 0
  8.         self.end = 0

  9.    def __str__(self):
  10.         return self.prompt

  11.     __repr__ = __str__

  12.     #开始计时
  13.     def start(self):
  14.         self.begin = t.localtime()
  15.         self.prompt = "提示请先使用stop()方法"
  16.         print("计时开始...")

  17.     #停止计时
  18.     def stop(self):
  19.         if not self.begin:
  20.             print("请先调用start()方法")
  21.         else:
  22.             self.end = t.localtime()
  23.             self._count()
  24.             print("计时结束!")

  25.     #计算差值
  26.     def _count(self):
  27.         self.lasted = []
  28.         self.prompt = '一共运行了'
  29.         for index in range(6):
  30.             self.lasted.append(self.end[index] - self.begin[index])
  31.             if self.lasted[index]:
  32.                 self.prompt += (str(self.lasted[index]) + self.unit[index])


复制代码


求大佬解释一下   def __str__(self):
        return self.prompt

    __repr__ = __str__这块代码 越详细越好
最佳答案
2020-11-23 09:30:53
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_ ...
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-11-23 09:30:53 | 显示全部楼层    本楼为最佳答案   
1.这两个函数都是内置函数,魔法方法,功能差不多,__str__本质是调用__repr__的
2.__str__相当于在你实例类的时候,自动执行的函数,就比如__init__是初始化类变量的功能,__str__日常所做的通俗的就是print了,
3.怎么跟你形容,就是类是人体,__str__,__init__,是里面的器官,只要你生下来那一刻,器官就随着你的出生而自动出生,并做属于自己的功能。
4.至于__repr__=__str__,就是让两个函数相同,你去掉这句也行,把__str__换成__repr__,效果也是一样的
5.如果有错误,尽情指正
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-6-30 04:08

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表