Returning same type as self for arithmetic in subclasses
Max M
maxm at mxm.dk
Fri Jan 7 17:31:54 EST 2005
# -*- coding: latin-1 -*-
"""
I subclass datetime and timedelta
>>> dt = myDatetime(1970,1,1)
>>> type(dt)
<class 'dtime.myDatetime'>
>>> td = myTimedelta(hours=1)
>>> type(td)
<class 'dtime.myTimedelta'>
But when I do arithmetic with these classes, they return datetime and
timedelta,
where I want them to return myDatetime and myTimedelta
>>> new_time = dt + td
>>> new_time
datetime.datetime(1970, 1, 1, 1, 0)
>>> type(new_time)
<type 'datetime.datetime'>
So I wondered if there was a simlpler way to coerce the result into my
desired
types rather than overwriting the __add__, __sub__ etc. methods?
"""
from datetime import datetime, timedelta
class myDatetime(datetime):
pass
class myTimedelta(timedelta):
pass
if __name__ == "__main__":
import os.path, doctest, dtime
# import and test this file
doctest.testmod(dtime)
--
hilsen/regards Max M, Denmark
http://www.mxm.dk/
IT's Mad Science
More information about the Python-list
mailing list