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()
→ Ссылка