我正在扩展datetime对象,因为我想覆盖 str 方法。
class MyDatetime(datetime.datetime):
def __str__(self):
return self.strftime("%Y-%m-%dT%H:%M:%S.%fZ")
问题,就是每当我开始添加和减去timedeltas时,我都会回到日期时间而不是MyDatetimes。我可以从日期时间为MyDatetime包含一个构造函数,然后覆盖__add__
和__sub__
方法,但也可能有其他方法,而且似乎应该有一些简单的方法来处理这......有什么建议吗?
答案 0 :(得分:1)
在你的情况下没有简单的方法 - 如果你想要涵盖所有可能的情况,你将不得不覆盖所有数学魔术方法。
Python文档中有一个全面的数学魔术方法列表:
https://docs.python.org/2.7/reference/datamodel.html#emulating-numeric-types
至少这些方法的代码足够相似,所以你应该能够通过大量的复制和粘贴创建它们,只需稍作修改。