Как и в заголовке, я инициировал метод суперкласса __init__
в методе наследования класса __init__
, но он все еще переопределяется, или, по крайней мере, я так думаю.Я хочу, чтобы self.x = x работал в классе наследования.
class Abs(ABC):
def __init__(self, x: int = 1, *args, **kwargs) -> None:
super().__init__(*args, **kwargs)
self.x = x
@abstractmethod
def foo(self):
pass
class Con(Abs):
def __init__(self, x: int = 1, *args, **kwargs) -> None:
super().__init__(*args, **kwargs)
def foo(self):
print(self.x)
obj = Con(x=4)
obj.foo() # <---- this here returns 1 instead of 4