multistep比较测试蟒蛇
问题描述:
我想实现一个类的重载,并得出结论,如果一个给定的时间点例如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
答
元组(和其他序列)已经执行字典比较的类型要实现:
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)
你可以使用'datetime' –