Что делают эти 3 строчки? Питон. ООП. Конструктор __init__ c вызовом super()? class Mycllass(a, **kwargs):
def __init__(self, **kwargs):
super(Mycllass, self).__init__(**kwargs)
Что происходит ? И как это связано с метаклассами ?

21 Авг 2019 в 07:00
152 +1
0
Ответы
1

Эти три строки создают класс Mycllass с конструктором init, который вызывает конструктор суперкласса с переданными **kwargs.

Когда вызывается конструктор суперкласса с помощью super(), это позволяет унаследовать поведение и свойства от родительского класса без необходимости явно указывать его имя. Это делает код более гибким и облегчает его поддержку и изменение в будущем.

Отношения между классами и метаклассами в данном случае заключаются в том, что метаклассы могут контролировать создание классов. Метакласс может изменить способ, которым создается конструктор init или добавить дополнительную логику к нему. В данном случае, если бы у нас был определен метакласс для класса Mycllass, мы могли бы изменить поведение вызова super() в конструкторе init суперкласса.

20 Апр в 13:10
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 83 829 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир