为什么datetime的子类减去timedelta是datetime对象的结果?

时间:2013-11-19 20:45:15

标签: python python-2.7 python-datetime

我有以下代码:

from datetime import datetime, timedelta


class MyDate(datetime):
      pass

d = MyDate.now()
t = timedelta(1, 1, 1)
print type(d)
print type(d - t)

输出如下:

<class '__main__.MyDate'>
<type 'datetime.datetime'> 

现在我的问题是,为什么减去timedelta的子类会导致超类?

此外还有一种解决方法,我不必封装datetime对象并重定向datetime的所有方法吗?

1 个答案:

答案 0 :(得分:3)

您的MyDate子类不会覆盖减法函数__sub__(),因此从基类继承该函数,该函数返回基类的实例。

解决方法是什么?您想通过对datetime进行子分类来实现什么目标?