class base(): def __init__(self, a): self.a = a class child(base): def __init__(self, arg): base.__init__(self,arg+1) x = child(2) print(x.a)
Всё работает.
Пробую использовать это:
from datetime import date class child2(date): def __init__(self, *args): print(self.year) #date.__init__(self,4,5,6) x = child2(1,2,3) print(x)
И вижу, что date.__init__ вызывается самостоятельно ещё до запуска child2.__init__. А я, наоборот, вызвать date.__init__ не могу. Закомментированная строка даёт ошибку “TypeError: object.__init__() takes no parameters”. Т.е. там непонятно что происходит, object.__init__ зачем-то.
Почему это работает не так, как в первом примере? Как “починить”?