鱼C论坛

 找回密码
 立即注册
查看: 948|回复: 2

小甲鱼“零基础学习python“44课,有个关于prompt的困惑

[复制链接]
发表于 2018-6-26 23:48:13 | 显示全部楼层 |阅读模式

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

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

x
class MyTimer():
    def __init__(self,int1):
        self.int1=int1
        self.prompt=str(0+self.int1)
   
    def __str__(self):      
        return self.prompt
        
    __repr__=__str__
   
    def __add__(self, other):
        prompt=self.int1+other.int1
        return str(prompt)

小甲鱼的代码我做了简化,这里一个是self.prompt,一个是prompt,在__str__() 里面,return的是self.prompt,可是__add__()里面的prompt值,也可以被__str__() and __repr__()调用被打印出来,为什么呢?此外,实例化后的self.prompt输出的值没有带''双引号,而__add__()输入的prompt输出的时候,是会带''双引号的,又是为什么呢?

>>> a=MyTimer(5)
>>> a
5
>>> b=MyTimer(6)
>>> b
6
>>> a+b
'11'
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-6-27 08:44:18 | 显示全部楼层
你在add里面定义的是一个局部的prompt变量,用str转换为了字符串,当然带引号
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-6-27 10:23:44 | 显示全部楼层
好的,我昨晚对__add__()的理解错了,谢谢你!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-7-4 17:19

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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