peter wrote: >>>> import datetime >>>> class ts(datetime.datetime): > ... foo = 'bar' > ... def __new__(cls, s): > ... c = super(ts, cls) > ... return c.fromtimestamp(s) > ... >>>> t = ts(0) > Traceback (most recent call last): > File "<stdin>", line 1, in <module> > File "<stdin>", line 5, in __new__ > TypeError: __new__() takes exactly 2 arguments (9 given) > > I don't understand why that happens -- am I correct in assuming that > the call to .fromtimestamp() is picking up on the ts class? Shouldn't > it get the datetime class instead? > > (Yes, I am aware of the problems of using datetime and timestamps) > > Could some kind soul please enlighten me?
If the datetime class were implemented in Python the fromtimestamp() method could look like: @classmethod def fromtimestamp(cls, s): year, month, day,... = ... return cls(year, month, day,...) This will fail since you modified the constructor to accept only a single argument. Peter -- http://mail.python.org/mailman/listinfo/python-list