Add a __add__
方法给你的FakeDate()
class:
class FakeDate(datetime.date):
@classmethod
def today(cls):
return cls(1999, 12, 31)
def __add__(self, other):
res = super(FakeDate, self).__add__(other)
return type(self)(res.year, res.month, res.day)
Demo:
>>> class FakeDate(datetime.date):
... @classmethod
... def today(cls):
... return cls(1999, 12, 31)
... def __add__(self, other):
... res = super(FakeDate, self).__add__(other)
... return type(self)(res.year, res.month, res.day)
...
>>> FakeDate.today() + datetime.timedelta(days=1)
FakeDate(2000, 1, 1)
请注意,您可以简单地将实际添加委托给datetime.date
在这里上课;我们需要做的就是将结果转换回FakeDate()
实例。