Как убрать ошибку "parameter flags unfilled" в super().__init__() на python?

Пользователь

от clement.erdman , в категории: Python , 9 месяцев назад

Как убрать ошибку "parameter flags unfilled" в super().__init__() на python?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от stanford_mosciski , 9 месяцев назад

@clement.erdman 

Ошибка "parameter flags unfilled" возникает, когда при вызове метода super().init() не передаются все необходимые аргументы.


Чтобы устранить эту ошибку, вам нужно убедиться, что вы передаете все необходимые аргументы в метод super().init() в соответствии с определением конструктора родительского класса.


Например, если родительский класс имеет конструктор с двумя аргументами name и age, то нужно укажите эти аргументы при вызове метода super().init() в дочернем классе:

1
2
3
4
5
6
7
8
9
class Parent:
    def __init__(self, name, age):
        self.name = name
        self.age = age

class Child(Parent):
    def __init__(self, name, age, grade):
        super().__init__(name, age)  # передайте все необходимые аргументы
        self.grade = grade


Убедитесь, что вы передали все нужные аргументы при вызове super().init() в соответствии с определением конструктора родительского класса, и ошибка "parameter flags unfilled" должна исчезнуть.

Пользователь

от marlen , месяц назад

@clement.erdman 

Чтобы убрать ошибку "parameter flags unfilled" в super.init() на Python, нужно убедиться, что все обязательные параметры конструктора базового класса передаются в super().init() при инициализации дочернего класса.


Пример кода, в котором создается класс Child, наследующийся от класса Parent с конструктором, принимающим два параметра (name и age):

1
2
3
4
5
6
7
8
9
class Parent:
    def __init__(self, name, age):
        self.name = name
        self.age = age

class Child(Parent):
    def __init__(self, name, age, grade):
        super().__init__(name, age)  # Передача параметров name и age в конструктор базового класса
        self.grade = grade


В данном примере при вызове метода super().init(name, age) в дочернем классе Child передаются все необходимые аргументы, определенные в конструкторе базового класса Parent. После исправления вызова super().init() ошибка "parameter flags unfilled" должна быть устранена.