, поэтому я только недавно начал делать OOP в python, и у меня не так много знаний в OOP в целом. Мне было интересно, могу ли я создать дочерние классы через родительский класс, а затем изменить переменную родительского класса через созданный дочерний класс?
class Parent:
def __init__(self, var1, var2, var3):
self.var1 = var1
self.var2 = var2
self.var3 = var3
def create_child(self, count):
array = []
for x in range(count):
array.append(Child(var4=self.var1))
return array
class Child(Parent):
def __init__(self, var4):
super(Parent, self).__init__()
self.var4 = var4
def alter_parent_variable(self, value):
self.var1 += value
Скажем, я создал код, как показано выше, я продолжаю получать сообщение об ошибке:
TypeError: init () отсутствует 3 обязательных позиционных аргумента: 'var1', 'var2' и 'var3'
Используя этот код для test:
test = Parent(20, 50, 1)
array = test.create_child(3)
for x in array:
x.alter_parent_variable(50)
Допустим, я добавил еще одну функцию с тем же кодом, что и в родительском классе, в дочерний класс (как указано ниже). Могу ли я напрямую изменить переменную родительского класса через дочерний класс, созданный дочерним классом?
def create_child(self, count):
array = []
for x in range(count):
array.append(Child(var4=self.var1))
return array