【发布时间】:2016-10-04 21:06:01
【问题描述】:
我正在做 exorcism.io 时钟练习,但我不知道为什么这个测试失败了。结果看起来完全相同,甚至具有相同的类型。
这是我的代码:
class Clock:
def __init__(self, h, m):
self.h = h
self.m = m
self.adl = 0
def make_time(self):
s = self.h * 3600
s += self.m * 60
if self.adl: s += self.adl
while s > 86400:
s -= 86400
if s == 0:
return '00:00'
h = s // 3600
if h:
s -= h * 3600
m = s // 60
return '{:02d}:{:02d}'.format(h, m)
def add(self, more):
self.adl = more * 60
return self.make_time()
def __str__(self):
return str(self.make_time()) # i don't think I need to do this
if __name__ == '__main__':
cl1 = Clock(34, 37) #10:37
cl2 = Clock(10, 37) #10:37
print(type(cl2))
print(cl2, cl1)
print(cl2 == cl1) #false
【问题讨论】:
-
您尚未为这些对象定义相等比较,因此它们从
object继承了默认的基于身份的==。 -
@user2357112 就是这样。谢谢!还需要将新的小时和分钟放入自字典中。
-
请不要为您的问题添加解决方案。欢迎您在下面添加您自己的答案。请记住,Stack Overflow 帖子旨在帮助未来有相同问题的访问者,并且答案是独立投票的。
标签: python python-3.x equality