Функция super() в Python — получение унаследованных методов

super() — это встроенная функция Python, которая возвращает прокси-объект, позволяя вам обращаться к родительскому классу с помощью «super». Метод super() в Python дает вам доступ к методам в суперклассе из унаследованного от него подкласса, его можно использовать для получения унаследованных методов от родительского или родственного класса.

Как вызвать функцию super() в Python3

Чтобы вызвать функцию super() в Python, создайте родительский и дочерний классы, наследуйте родительский класс дочернему классу, а затем вызовите метод super() из дочернего класса.

Как видите, это базовая установка одиночного наследования.

Мы можем видеть базовый или родительский класс(также иногда называемый суперклассом) и производный класс или подкласс, но нам все еще нужно инициализировать родительский или базовый класс в подклассе, производном или дочернем.

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

Пример 1

В приведенном выше примере мы определили один базовый класс — Computer, и производный класс — Laptop.

Мы определили три свойства внутри базового класса; производный класс имеет четыре свойства.

Три свойства производного класса являются производными от базового класса, а четвертое является свойством. Кроме того, производный или дочерний класс имеет свойство модели. Остальные три получены из компьютера базового класса.

Итак, если мы создадим только объект производного класса, у нас все равно будет доступ к свойству базового класса благодаря функции super().

Выход

Пример функции super() в Python

Пример 2

Когда вы определяете метод родительского класса в дочернем классе, этот процесс называется переопределением.

Другими словами, дочерний класс может переопределить методы своего родителя или суперкласса, определив функцию с тем же именем.

Тем не менее, есть некоторые правила переопределения:

  1. Имя метода должно совпадать с его параметрами.
  2. Если метод суперкласса является закрытым(с префиксом с двойным подчеркиванием), вы не можете его переопределить.

В Python вы можете использовать метод super() для переопределения. Он имеет следующий синтаксис.

См. следующий код.

Выход

Python super() с __init__()

super() — это встроенная в Python функция, которая позволяет вам вызывать метод из родительского класса. Он обычно используется с __init__(), чтобы убедиться, что код инициализации родительского класса выполняется до кода инициализации дочернего класса.

Пример

В этом примере кода у нас есть два класса: Parent и Child. Класс Child наследуется от класса Parent. Мы хотим убедиться, что метод __init__() класса Parent вызывается при создании экземпляра класса Child.

Когда мы создадим экземпляр класса Child, вывод будет таким:

Это связано с тем, что вызов super().__init__() в методе __init__() класса Child гарантирует, что метод __init__() класса Parent вызывается после оператора печати «Вызвана функция инициализации дочернего элемента».

Вы также можете использовать super() с __init__() при передаче аргументов в метод __init__() родительского класса:

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

Оцените статью

Автор статей и разработчик, делюсь знаниями.

Программирование на Python