Why doesn't the following work (Python 2.5.2)?
>>> import datetime
>>> class D(datetime.date):
def __init__(self, year):
datetime.date.__init__(self, year, 1, 1)
>>> D(2008)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: function takes exactly 3 arguments (1 given)
I wanted to create a class that was just like datetime.date
, but with a different __init__
function. Apparently my function never gets called. Instead the original datetime.date.__init__
is called and fails because that expects 3 arguments and I am passing in one.
What's going on here? And is this a clue?
>>> datetime.date.__init__
<slot wrapper '__init__' of 'object' objects>
Thanks!
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…