Поиск по сайту:
Когда исчезнет то, что зло сейчас, немедленно наступит то, что зло завтра (Ф. Искандер).

Использование функций super в Python

19.06.2021
Использование функций super в Python

Хотя Python не является строго объектно-ориентированным языком программирования, он достаточно силен и гибок, чтобы позволить вам использовать объектно-ориентированную модель для создания ваших программ. Python частично выполняет это, разрешая наследование, которое он обеспечивает через super(). Встроенный super() создает суррогатный объект (временный объект суперкласса), который мы можем использовать для доступа к функциям базового класса. Кроме того, метод super() предоставляет право на использование функций и атрибутов родительского или родственного класса. Работа с одновременным наследованием помогает нам избежать прямого использования имени родительского класса. В этой статье вы узнаете, как вторгнуться в суперкласс с помощью метода super().

 

Синтаксис:

super()

 

Установка Python:

Перед реализацией примеров Python у нас должен быть установлен пакет Python в нашей системе Ubuntu 20.04 Linux. Итак, войдите в систему из системы Linux и быстро откройте оболочку терминала с помощью «Ctrl + Alt + T». Но сначала мы должны проверить, какая версия Python уже установлена ​​в нашей системе. И для этого попробуйте запрос ниже. Как видите, теперь отображается последняя версия Python.

$ python3 --version

 

Узнав об этом, нам нужно сначала обновить наш репозиторий apt. Следовательно, попробуйте следующий запрос для обновления системы Linux:

$ sudo apt update

 

Через пакет PPA добавьте несколько дополнительных пакетов для Python:

$ sudo add-apt-repository ppa:deadsnakes/ppa

 

Нажмите клавишу Enter, чтобы продолжить.

Пришло время установить последнюю версию Python в нашу систему Linux. Итак, попробуйте следующую инструкцию в консольной оболочке и нажмите клавишу Enter :

$ sudo apt install python3.9

 

Нажмите «Y», чтобы продолжить процесс установки, в противном случае нажмите клавишу «n», чтобы остановить его.

Читать  Что такое каналы (pipe) в Linux? Как работает перенаправление каналов?

После установки обновленной версии Python пришло время установить репозиторий pip для использования Python в нашей системе. Прежде всего, нам нужно проверить, установлен он уже или нет. Для этого давайте проверим версию пакета pip с помощью инструкции, показанной ниже. Вывод показывает, что в нашей системе не установлен pip.

$ pip --version

 

Чтобы установить последнюю версию pip, нам понадобится пакет curl в нашей системе Linux. Итак, установите его с помощью следующего запроса:

$ sudo apt install curl

 

Загрузите пакет pip с помощью curl в консоли следующим образом:

$ curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py

 

Проверьте список всех пакетов, начиная с ключевого слова «get».

$ ls get*

 

Теперь запустите пакет «get-pip.py», только что загруженный в систему с помощью запроса sudo. Установка может занять некоторое время.

$ sudo python3.9 get-pip.py

 

Приведенный ниже вывод показывает, что последняя версия пакета была установлена ​​эффективно.

Теперь вы можете проверить версию репозитория pip с помощью инструкции ниже:

$ pip3.9 --version

 

Супер пример 01:

Наконец, мы рассмотрим мини-пример суперфункции в Python. Итак, прежде всего, нам нужно создать файл расширения «py» из оболочки командной строки. Поэтому мы будем использовать следующий сенсорный запрос в оболочке вместе с именем файла как «one.py»:

$ touch one.py

 

Теперь откройте домашний каталог вашей системы из проводника. Вы найдете там файл «one.py». Откройте этот файл и добавьте к нему скрипт Python. Давайте сначала познакомимся с этим кодом. В самом начале мы создали родительский класс с именем «Animal» с конструктором в нем. Этот конструктор печатает имя любого животного и текст строки, который будет передан ему в параметре в ближайшем будущем. После этого мы создали два дочерних класса: «Bird» и «Other». Оба дочерних класса имеют в своем теле конструкторы, которые печатают некоторые операторы. Эти конструкторы вызывают инструктор суперкласса, передавая ему свое дочернее имя в качестве значения параметра. Из-за этого конструктор родительского класса будет запускаться и печатать инструкцию в своем теле вместе с именем дочернего класса. Объекты b1 и c1 использовались для вызова дочерних классов соответственно.

#!/usr/bin/env python3
class Animal(object):
def
init__(self, name):
print(name, 'это может быть любое животное. ')class Birds(Animal):
def init__(self):
print('У птиц есть перья. )
super().__init__('Birds')

class Other(Animal):
def __init__(self):
print('У животных четыре ноги.')
super().__init__('Other')

b1 = Birds()
o1 = Other()

Давайте выполним файл сценария Python, чтобы увидеть вывод кода. Для выполнения напишите в оболочке следующую инструкцию, перед которой стоит ключевое слово python3 вместе с именем файла «one.py». Приведенные ниже выходные данные указывают на первую строку из дочернего класса «Birds» и вторую строку из суперкласса «Animal». Третья строка указывает инструкцию из дочернего класса «Other», а четвертая строка — из суперкласса «Animal». И вторая, и четвертая строки содержат первое слово из значений параметров, переданных из дочерних классов.

$ python3 one.py

 

Читать  Взаимодействие CouchDB с Python

Супер пример 02:

Откройте тот же файл one.py и обновите код , добавив в него следующий код. Этот код содержит один родительский класс как «Human» и один дочерний класс как «Child». У родительского класса «Human» есть конструктор, устанавливающий прямые значения возраста, роста и цвета. Хотя у дочернего класса есть конструктор с одним дополнительным параметром, «name», он вызывает конструктор суперкласса для установки значений. Этот конструктор дочернего класса устанавливал переменную «name». Объект c1 используется для передачи значений в параметре конструктора дочернего класса. После этого четыре оператора печати использовались для печати значений всех параметров.

#!/usr/bin/env python3
class Human():
  def __init__(self, age, height, color):
    self. age = age
    self. height = height
    self. color = color


class Child(Human):
  def init__(self, age, height, color, name):
    super().__init__(age, height, color)
    self. name = name


c1 = Child(40, '70', 'white', 'AndreyEx')
print('Ребенку: ', c1. age, years')
print('Этот ребенок имеет рост: ', c1. height, inches.
print('Цвет ребенка: ', c1. color)
print('Это имя ребенка: ', c1. name)

 

Выполним файл с ключевым словом «python3» и именем файла «one.py». Попробуйте запрос ниже и нажмите кнопку «Enter». Вывод показывает четыре оператора печати, определенных вне обоих классов, например, child и parent. Нет проблем, если вы объявляете переменную в родительском или дочернем классе.

 

Заключение:

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

Читать  Python. NumPy pad()

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 оценок, среднее: 5,00 из 5)
Загрузка...
Поделиться в соц. сетях:


0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

**ссылки nofollow

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

Это может быть вам интересно


Рекомендуемое
Создание безопасного соединения между локальным и удаленным хостами называется SSH-туннелированием…

Спасибо!

Теперь редакторы в курсе.