Why can't I subclass off of "date" ?
Ok, maybe this is a stupid question, but why can't I make a subclass of datetime.date and override the __init__ method? --- from datetime import date class A(date): def __init__(self, a, b, c, d): print a, b, c, d date.__init__(self, 2006, 12, 11) d = A(1, 2, 3, 4) --- $ python break_date.py Traceback (most recent call last): File "break_date.py", line 9, in ? d = A(1, 2, 3, 4) TypeError: function takes exactly 3 arguments (4 given) If I make A a subclass of some toy class that is constructed with three arguments, it works fine. Why can't I make "date" the subclass? Thanks for any advice. David -- http://mail.python.org/mailman/listinfo/python-list
Re: Why can't I subclass off of "date" ?
Wow, you guys are fast. Thanks Georg and Fredrik!! Fredrik Lundh wrote: > [EMAIL PROTECTED] wrote: > > > Ok, maybe this is a stupid question, but why can't I make a subclass of > > datetime.date and override the __init__ method? > > __init__ controls initialization of an already constructed object. to > control construction, you need to override __new__: > > http://pyref.infogami.com/__new__ > > e.g. > > class A(date): > def __new__(cls, a, b, c, d): > print a, b, c, d > return super(A, cls).__new__(cls, 2006, 12, 11) > > -- http://mail.python.org/mailman/listinfo/python-list
