inheriting from datetime

Lee Harr lee at example.com
Mon Aug 1 17:10:59 EDT 2005


On 2005-08-01, Rob Conner <rtconner at gmail.com> wrote:
> So this is simple, why can't I run the following code? I've tried many
> variances of this, but simply cannot inherit from datetime or
> datetime.datetime. I get this on line 3.
> TypeError: function takes at most 2 arguments (3 given)
>
> ********************************
> import datetime
> _datetime = datetime.datetime
>
> class MyDateTime(_datetime):
>     """
>     Identical to builtin datetime.datetime, except it accepts
>     invalid dates and times as input.
>     """
>     _valid = True
>
>     def __init__(self, year, month, day, *args, **kw):
>         try:
>             _datetime.__init__(self, year, month, day, *args, **kw)
>         except _datetime.ValueError:
>             _valid = False
>             self.year   = year
>             self.month  = month
>             self.day    = day
>             self.args   = args
>             self.kw     = kw
> ********************************
>



It helps to post the actual code and error message you
are seeing...



>>> import datetime
>>> class foo(datetime):
...   pass
...
Traceback (most recent call last):
  File "<stdin>", line 1, in ?
TypeError: function takes at most 2 arguments (3 given)
>>> class foo(datetime.datetime):
...   pass
...
>>> d = foo()
Traceback (most recent call last):
  File "<stdin>", line 1, in ?
TypeError: function takes at least 3 arguments (0 given)
>>> d = foo(1, 2, 3)
>>> d
foo(1, 2, 3, 0, 0)
>>> datetime.datetime(1, 2, 3)
datetime.datetime(1, 2, 3, 0, 0)



My guess is that the code you posted is not really the
code you were runnning.



More information about the Python-list mailing list