2017-07-14 140 views
-1

我想实现一个类的重载,并得出结论,如果一个给定的时间点例如12:59:50事件发生在另一个事件之前,所以输出是真或假,只是一个简单的比较测试。正如你所看到的那样,我实现了它,但是,我非常肯定,这不是最棘手或更好说的,反对导向的方法来执行任务。我是python新手,所以有什么改进吗?multistep比较测试蟒蛇

由于

def __lt__(self, other): 
    if self.hour < other.hour: 
     return True 

    elif (self.hour == other.hour) and (self.minute < other.minute):    
     return True 

    elif (self.hour == other.hour) and (self.minute == other.minute) and (self.second < other.second):    
     return True 

    else:    
     return False 
+0

你可以使用'datetime' –

回答

2

元组(和其他序列)已经执行字典比较的类型要实现:

def __lt__(self, other): 
    return (self.hour, self.minute, self.second) < (other.hour, other.minute, other.second) 

operator模块可以清理一下一点:

from operator import attrgetter 

def __lt__(self, other): 
    hms = attrgetter("hour", "minute", "second") 
    return hms(self) < hms(other)