1
我(在Python 3):打印日期时间的列表时,覆盖默认格式对象
print('event {} happened on these dates: {}'.format(event_name, date_list))
我date_list
是datetime.date
对象的列表。我想的格式从改变:
事件A发生在[datetime.date(2011,5,31),datetime.date(2011年,6 ,15)]
到
事件A发生了[2011-05-31,2011-06-15]
什么是实现这一目标的最佳途径?我希望能继续使用format()
函数,但我不知道如何。
了... ...这是一个很大的重复性'join'虽然调用。子类'datetime.date'覆盖'__repr__'是否是一个好主意,因此它简单地调用'__str__'? – max 2012-01-29 11:43:22
它实际上只有一个'join'调用,尽管(可能)有很多'str'调用。对'datetime.date'进行子类化,所以'__repr__'返回'str(self)'是可能的,但只有当你喜欢简单的语法而不是速度时才可以。实际上,使用子类会比较慢,因为每个'__repr__'调用都会调用'str'。实际上,你可以做出和上面一样多的'str'调用,加上相同数目'__repr__'调用的开销。无论如何,除非您已经确定了主要瓶颈,否则不必担心速度问题。我怀疑它会在这里。 – unutbu 2012-01-29 12:49:28
对不起,我的意思是编写代码意义上的“重复性”,而不是执行:)我有很多地方打印日期列表......因此,对我而言,这似乎并不坏子类。谢谢! – max 2012-01-29 21:09:55