鱼C论坛

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

python 45课,小甲鱼视频课——计时器 中的问题,求详解

[复制链接]
发表于 2021-3-19 11:18:36 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 huyanmin 于 2021-3-19 12:24 编辑

class MyTimer():
        #下面是小甲鱼视频中原代码中一部分
    def __repr__(self):
        return self.prompt   #此处prompt前面加了self
   
    def __add__(self,other):
        prompt='总共运行了'
        result =[]
        for index in range(6):
            result.append(self.lasted[index]+other.lasted[index])
            if result[index]:
                prompt+=(str(result[index]) + self.unit[index])
         return prompt     #此处prompt前面没有加self,此处的局部变量prompt是如何改变上面的self.prompt的值的?事实上确实正确 执行了。
        
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-3-19 11:55:21 | 显示全部楼层
本帖最后由 jackz007 于 2021-3-19 12:06 编辑

      self 是对象本身,只有在编写类的方法时需要写上形式参数 self。self . prompt 是对象的一个属性。例如:
a = MyTimer()
print(a)
     在这段代码中,a 是类 MyTimer 的对象,这个对象就有 prompt 属性,只要定义了对象 a ,就可以通过 a . prompt 访问到这个属性。当使用 print(a) 打印对象信息时,系统会调用 __repr()__ 方法,这时,对象 a 就是传入方法的参数 self,我们看到,__repr()__ 返回了 self . prompt,实际上,就是 a . prompt,如果不信,可以自己验证。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-10 02:18

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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