Откуда наследуется конструктор? В python3 можно перегружать методы. Например:class A:
def go(self):
print('A!')
class B(A):
def go(self):
print('B!')
Здесь класс B наследуется от класса A. Но благодаря перегрузке в классе B метод go() был подменён. С этим понятно.
Но не понятно каким образом можно перегружать в любом классе конструктор __init__(). Насколько я понимаю этот конструктор ни откуда не наследуется. например:class C:
__init__(self, name):
self.name = name
Это самый обычный код, но class C не имеет родителя, судя по записи.

21 Авг 2019 в 06:59
200 +1
0
Ответы
1

Конструктор __init__() в Python не наследуется от родительского класса, он должен быть определен в каждом классе отдельно. Если у вас есть класс C без родителя, вы все равно можете определить конструктор __init__() в этом классе, как вы показали в примере.

Пример с перегрузкой конструктора __init__() в классе с родителем выглядит следующим образом:

class A:
def __init__(self, name):
self.name = name
class B(A):
def __init__(self, name, age):
super().__init__(name)
self.age = age

В этом примере класс B наследуется от класса A, и в классе B определен новый конструктор __init__(), который принимает дополнительный аргумент age и вызывает конструктор класса A через super().__init__(name) для инициализации переменной name от родительского класса.

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