Overloading ctor doesn't work?

Kent Johnson kent3737 at yahoo.com
Thu Jan 20 13:59:43 EST 2005


> Martin Häcker wrote:
> 
>> Hi there,
>>
>> I just tried to run this code and failed miserably - though I dunno 
>> why. Could any of you please enlighten me why this doesn't work?

Here is a simpler test case. I'm mystified too:

from datetime import datetime

class time (datetime):
   def __init__(self, hours=0, minutes=0, seconds=0, microseconds=0):
     datetime.__init__(self, 2001, 10, 31, hours, minutes, seconds, microseconds)

print time(1,2,3,4) # => 0001-02-03 04:00:00
print time()        # => TypeError: function takes at least 3 arguments (0 given)


What happens to the default arguments to time.__init__? What happens to the 2001, 10, 31 arguments 
to datetime.__init__?

I would expect the output to be
2001-10-31 01:02:03.000004
2001-10-31 00:00:00.000000

Kent



More information about the Python-list mailing list