Python ООП Нужны еще три аргумента
class Stringing():
def __init__(self, strin1, strin2, strin3):
self.strin1 = strin1
self.strin2 = strin2
self.strin3 = strin3
def prv(self):
print(f'{self.strin1}')
stringing = Stringing('Number1: ', 'Number2: ', 'Number3: ')
class Number(Stringing):
def __init__(self, number1, number2, number3):
Stringing.__init__(self)
self.number1 = number1
self.number2 = number2
self.number3 = number3
def prin(self):
print(f'{self.strin1} {self.number1}')
print(f'{self.strin2} {self.number2}')
print(f'{self.strin3} {self.number3}')
number = Number(51, 15, 45)
print(number.prin())
Ответы (2 шт):
Автор решения: aleck.onim
→ Ссылка
Вот тут, когда вызываете родительский конструктор:
Stringing.__init__(self)
Нужно делать это вот так:
super().__init__(string1, string2, string3)
То есть в родительский конструктор, нужно передать три параметра, которые он ожидает - три строки. А для того, чтобы их передать, Вам нужно их создать в конструкторе класса Number.
Автор решения: S. Nick
→ Ссылка
как вариант:
class Stringing():
def __init__(self, strin1='', strin2='', strin3=''):
self.strin1 = strin1
self.strin2 = strin2
self.strin3 = strin3
def prv(self):
print(f'{self.strin1}')
class Number(Stringing):
def __init__(self, number1, number2, number3, parent):
super(Number, self).__init__(parent)
self.parent = parent
self.number1 = number1
self.number2 = number2
self.number3 = number3
def prin(self):
print(f'{self.parent.strin1} {self.number1}')
print(f'{self.parent.strin2} {self.number2}')
print(f'{self.parent.strin3} {self.number3}')
stringing = Stringing('Number1: ', 'Number2: ', 'Number3: ')
number = Number(51, 15, 45, stringing)
number.prin()