用继承的类替换返回类型的类方法

时间:2015-12-28 14:03:21

标签: python

我正在扩展datetime对象,因为我想覆盖 str 方法。

class MyDatetime(datetime.datetime):
    def __str__(self):
        return self.strftime("%Y-%m-%dT%H:%M:%S.%fZ")

问题,就是每当我开始添加和减去timedeltas时,我都会回到日期时间而不是MyDatetimes。我可以从日期时间为MyDatetime包含一个构造函数,然后覆盖__add____sub__方法,但也可能有其他方法,而且似乎应该有一些简单的方法来处理这......有什么建议吗?

1 个答案:

答案 0 :(得分:1)

在你的情况下没有简单的方法 - 如果你想要涵盖所有可能的情况,你将不得不覆盖所有数学魔术方法。

Python文档中有一个全面的数学魔术方法列表:

  

https://docs.python.org/2.7/reference/datamodel.html#emulating-numeric-types

至少这些方法的代码足够相似,所以你应该能够通过大量的复制和粘贴创建它们,只需稍作修改。