Откуда наследуется конструктор? В 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
222 +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 Апр 2024 в 13:10
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир