开发者社区> 问答> 正文

覆盖__add__方法

class Clock:


   def __init__(self,hours,minutes):```

   self.hours=hours
   self.minutes=minutes



def Clock(hours,minutes):
        if hours>9 and minutes>9:
            return str(hours)+":"+str(minutes)
        elif hours>9 and minutes<10:
            return str(hours)+":0"+str(minutes)
        elif hours<10 and minutes>9:
            return "0"+str(hours)+":"+str(minutes)
        else:
            return "0"+str(hours)+":"+"0"+str(minutes)

def __add__(self,other):
    ????if Clock.Clock(self.hours,self.minutes)+Clock.Clock(other.hours,other.minutes)????



  t=Clock.Clock(5,6)+Clock.Clock(5,6)
  print(t)  

当我打印t时,得到05:0605:06 我想知道当我在写Clock。Clock(self,other)+Clock。Clock(self,other)时它会输出Clock(self,other)+Clock(self,other) 对于上面的输入,它等于10:12。 问题来源StackOverflow 地址:/questions/59382501/overwrite-add-method

展开
收起
kun坤 2019-12-27 17:09:16 318 0
1 条回答
写回答
取消 提交回答
  • 您添加的字符串将连接起来,而不是实际添加的小时和分钟值。你可能想这样做

    def __add__(self,other):
        return Clock.Clock(self.hours+other.hours,self.minutes+other.minutes)
    

    假设小时和分钟属性是数值的

    2019-12-27 17:09:23
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载