Я сейчас пытаюсь написать сценарий, используя несколько классов и наследуя между ними. Проблема заключается в том, что при наследстве от моего базового (родительского) класса в базовых точках (ребенок) мне, кажется, придется написать значения по умолчанию, которые я снова указал в базе в конструкторе ребенка. Почему я не могу просто использовать Super, чтобы взять значения ARG в базе и установить их в ARG в базовых точках? Еще большая проблема заключается в том, что при запуске кода с этими значениями по умолчанию в классе ребенка значения, которые должны быть переданы из родительского класса, получают переопределение.
Код: Выделить всё
class Base():
def __init__(self, arg1: int = 0, arg2: str = "", arg3: bool = False):
self.arg1 = arg1
self.arg2 = arg2
self.arg3 = arg3
def set_arg3(self):
self.arg3 = True
class BaseCalculations(Base):
def __init__(self, arg1: int = 0, arg2: str = "", arg3: bool = False): # why do i need the defaults again
super().__init__(arg1, arg2, arg3) # this super more or less does nothing it should override
# the default values in the constructor with values from Base
# using super
base = Base()
base.set_arg3()
calc = BaseCalculations()
print(calc.arg3) # prints False but should print True
, чтобы полностью понять, что я имею в виду, взглянуть на исходный код в этом репо.
Подробнее здесь:
https://stackoverflow.com/questions/795 ... from-super