Если у вас нет странностей в A
, например, свойства только для чтения, вы можете просто позволить A.__init__
выполнять свою работу, а затем изменить одно значение, которое вы хотите, в B.__init__
:
class B(A):
def __init__(self):
super().__init__()
self.var2 = 15
Но это вызывает некоторые возможные проблемы с дизайном.Если A
предназначен для расширения, возможно, стоит подумать об использовании значений по умолчанию для параметров вместо жесткого кодирования их в конструкторе:
class A():
def __init__(self, var1=10, var2=20, var3=30):
self.var1 = var1
self.var2 = var2
self.var3 = var3
Теперь дочерние классы могут вызывать свой super
initializer ипереопределить только те значения, которые им нужны:
class B(A):
def __init__(self):
super().__init__(var2=15)
или еще лучше
class B(A):
def __init__(self, var2=15):
super().__init__(var2=var2)