鱼C论坛

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

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

[复制链接]
发表于 2020-11-23 09:30:52 | 显示全部楼层 |阅读模式
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__这块代码 越详细越好
最佳答案
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_ ...
想知道小甲鱼最近在做啥?请访问 -> 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.如果有错误,尽情指正
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-17 14:05

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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