Subclassing datetime.date

Sir Wilhelm the Sturdy wgaggioli at gmail.com
Sat Feb 6 21:06:04 CET 2010


Hi all,

I recently attempted to subclass the datetime.date object resulting in
horror and confusion, before submitting to a has-a relationship.
That's all fine and dandy, but out of curiosity I'd like to know what
I'm missing.

I was attempting to allow more flexible instancing of an object, like
so:

import datetime

class MyDate(datetime.date):

    def __init__(self,*args,**kw):

        if len(kw) + len(args) > 1:
            self.construct(*args,**kw)

    def construct(self,d,m=None,y=None,**kw):

        today = datetime.date.today()
        if m is None:
            m = today.month
        if y is None:
            y = today.year

        datetime.date.__init__(self,y,m,d,**kw)


However, it wasn't having the desired effect. Indeed, I could still
only instance it with 3 variables lest I get errors, and when I did
call it with 3 variables it didn't reflect the order change I had
implemented. Indeed, the properties were already set before it even
got to the construct method.

Is there some kind of built in I'm missing here?

Thanks all,
Will



More information about the Python-list mailing list