'TypeError: __init __ () получил несколько значений для аргумента' с Python 3 с использованием функции super () - PullRequest
0 голосов
/ 01 марта 2020

Я пишу OOP программу на Python 3 с наследованием и сталкиваюсь с ошибкой заголовка при попытке инициализировать дочерний класс следующим образом:

class Parent:
    def __init__(self, var1, var2):
        self.var1 = var1
        self.var2 = var2

    #more methods that to some stuff

class Child(Parent):
    a = 1 #a and b are class attributes
    b = 2

    def __init__(self, var1 = 1, var2 = 2, var3 = None):
        super().__init__(self, var1 = 1, var2 = 2) #error shows up for this line
        self.var3 = var3

child_obj = Child(var3 = 3)

Когда я создаю Child объект Я получаю сообщение об ошибке: TypeError: __init__() got multiple values for argument 'var1'. Кто-нибудь знает, что здесь может быть не так? Заранее спасибо.

1 Ответ

0 голосов
/ 01 марта 2020

Пожалуйста, проверьте ваш код, это неправильно. Вы хотите что-то подобное?

class Parent:
    def __init__(self, var1, var2):
        self.var1 = var1
        self.var2 = var2
        print(var2)

    #more methods that to some stuff

class Child(Parent):
    a = 1 #a and b are class attributes
    b = 2

    def __init__(self, var1 = 1, var2 = 2, var3 = None):
        super().__init__(var1 = 1, var2 = 2) 
        self.var3 = var3

child_obj = Child(var3 = 3)
...