__call__方法有什么问题

时间:2017-01-29 06:38:53

标签: python

class Time:
    def __init__(self,hour=0, minute= 0, second=0):
        if type(hour) != int or type(minute) != int or type(second) != int or hour < 0 or hour > 23 or minute < 0 or minute > 59 or second < 0 or second > 59:
            raise AssertionError
        self.hour = hour
        self.minute = minute 
        self.second = second
        self._date = datetime.datetime(2000, 1, 1, hour, minute, second)

    def __call__(self):
        return Time(self.hour,self.minute,self.second)

我正在编写Time类,我编写了 init 方法和调用方法。 调用方法允许使用三个int参数调用此类中的对象:将对象的小时更新为第一个参数,将对象的分钟更新为第二个参数,以及第二个对象是第三个参数。它应该返回None,如果任何参数不合法,并使用描述问题/值的适当字符串引发AssertionError。

我的调用方法不起作用,有人可以告诉我如何修复它吗?提前致谢。

测试电话

c-->t = Time()
c-->t(16,2,5)
e-->t-->4:02:05pm
c-->t(4,23,16)
e-->t-->4:23:16am
^-->t(5,60,12)-->AssertionError

0 个答案:

没有答案