我有以下代码:
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
的所有方法吗?
答案 0 :(得分:3)
您的MyDate
子类不会覆盖减法函数__sub__()
,因此从基类继承该函数,该函数返回基类的实例。
解决方法是什么?您想通过对datetime
进行子分类来实现什么目标?