Sir Wilhelm the Sturdy <wgaggi...@gmail.com> writes: F> 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.
__init__ is *not* the construction method, __new__ is (at least with new style classes) > Is there some kind of built in I'm missing here? I guess __new__ but I am quite the newbie. -- John Bokma j3b Hacking & Hiking in Mexico - http://johnbokma.com/ http://castleamber.com/ - Perl & Python Development -- http://mail.python.org/mailman/listinfo/python-list