Изучите наследование в Python на примерах

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

Что такое наследование?

Наследование относится к процессу передачи свойств родительского класса дочернему. Это идея OOP. Ниже приведены некоторые преимущества наследования.

  1. Возможность повторного использования кода — вместо того, чтобы писать один и тот же код снова и снова, мы можем просто унаследовать необходимые нам свойства в дочернем классе.
  2. Он изображает реальные отношения между родительскими и дочерними классами.
  3. Он имеет транзитивную природу. Если дочерний класс наследует свойства родительского класса, то все подклассы дочернего класса также унаследуют свойства родительского класса.

Ниже приведен простой пример наследования в Python:

класс Животное(объект):

Программы для Windows, мобильные приложения, игры - ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале - Подписывайтесь:)

def __init__(сам, имя, ноги):

self.name = имя

self.legs = ноги

def getName(self):

вернуть себя.имя

определение getLegs(self):

вернуть себя.ноги

def isMammal(self):

вернуть Ложь

класс Млекопитающие(Животные):

def isMammal(self):

вернуть Истину

годы = Животное(“Ящерица”, 4)

print(ani.getName(), ani.getLegs(), ani.isMammal())

ani = Млекопитающее(“Собака”, 4)

print(ani.getName(), ani.getLegs(), ani.isMammal())

Выход

Ящерица 4 Ложь

Собака 4 Правда

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

Подклассификация

Подклассификация — это процесс вызова функции Object() { (native code) } родительского класса путем упоминания имени родительского класса в объявлении дочернего класса. Подклассификация — это то, как дочерний класс идентифицирует свой родительский класс.

Функция инициализации

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

класс Животное:

def __init__(сам, звук):

сам.звук = звук

def animal_sound(self):

print('Звук животного – ', self.sound)

p = Животное('Лук Лук')

p.звук_животного()

Выход

Звук животного — «Бау-бау».

Типы наследования

В Python существует четыре типа наследования, основанные на количестве задействованных дочерних и родительских классов.

Единичное наследование

Когда только один родительский класс наследуется дочерним классом.

класс Животное:

def function1(self):

print(“Функция находится в родительском классе.” )

класс Собака(Животное):

def function2(self):

print(“Функция находится в дочернем классе.” )

объект = Собака()

объект.функция1()

объект.function2()

Выход:

Функция находится в родительском классе.

Функция находится в дочернем классе.

Множественное наследование

Когда дочерний класс наследует от нескольких родительских классов.

класс Мобильный_Телефон:

мобильное_имя = “”

def мобильный_телефон(self):

print(self.mobile_name)

класс ПК:

имя_компьютера = “”

def pc(self):

print(self.имя_компьютера)

класс Планшет (Мобильный_Телефон, ПК):

def особенности(self):

print(“Набор функций 1 :”, self.mobile_name)

print(“Набор функций 2 :”, self.pc_name)

f1 = Планшет()

f1.mobile_name = “Samsung Note 7”

f1.pc_name = “ASUS Vivobook 3”

f1.особенности()

Выход:

Набор функций 1: Samsung Note 7

Набор функций 2: ASUS Vivobook 3

Многоуровневое наследование

Когда один детский класс берет на себя роль родительского класса для другого детского класса.

класс Старый_Компьютер:

def __init__(self, old_computername):

self.old_computername = старое_имя_компьютера

класс Ретро_Компьютер(Старый_Компьютер):

def __init__(self, retro_computername, old_computername):

self.retro_computername = ретро_computername

Старый_компьютер.__init__(self, old_computername)

класс Новый_Компьютер(Ретро_Компьютер):

def __init__(self, new_computername, retro_computername, old_computername):

self.new_computername = новое_имя_компьютера

Retro_Computer.__init__(self, retro_computername, old_computername)

def display_name(self):

print('Имя старого компьютера :', self.old_computername)

print(“Имя ретро-компьютера :”, self.retro_computername)

print(“Новое имя компьютера :”, self.new_computername)

n1= Новый_Компьютер('Машина Тьюринга', 'Machintosh', 'HP Pavillion')

print(n1.old_computername)

n1.отображаемое_имя()

Выход:

Павильон HP

Старое имя компьютера: HP Pavilion

Имя ретро-компьютера: Macintosh

Новое имя компьютера: Машина Тьюринга

Иерархическое наследование

Многократное наследование от одного и того же базового или родительского класса называется иерархическим наследованием.

класс Животное:

def function1(self):

print(“Функция находится в родительском классе.” )

класс Собака(Животное):

def function2(self):

print(“Функция находится в классе собак.” )

класс Кот(Животное):

def function3(self):

print(“Функция находится в классе cat.” )

объект1 = Собака()

объект2 = Кот()

объект1.функция1()

объект1.функция2()

объект2.функция1()

объект2.функция3()

Выход:

Функция находится в родительском классе.

Функция относится к классу собак.

Функция находится в родительском классе.

Функция принадлежит классу cat.

Гибридное наследование

Несколько периодов наследования в одном приложении при гибридном наследовании.

класс Животное:

def function1(self):

print(“Функция с Animal.”)

класс Собака(Животное):

def function2(self):

print(“Функция с собакой.” )

класс Кот(Животное):

def function3(self):

print(“Функция с Cat.”)

класс Бегемот(Собака, Животное):

def function4(self):

print(“Функция с Бегемотом.”)

объект = Бегемот()

объект.функция1()

объект.function2()

Выход:

Функция связана с Животным.

Функция связана с Собакой.

Функция Python Surer()

Мы можем использовать функцию super для вызова метода из родительского класса.

класс Животное():

def __init__(сам, имя):

print(имя, “является животным”)

класс isMammal(Животное):

def __init__(self, isMammal_name):

print(isMammal_name, “рожает детенышей”)

super().__init__(isMammal_name)

класс isReptile(Животное):

def __init__(self, isReptile_name):

print(isReptile_name, “принадлежит к семейству ящериц!”)

super().__init__(isReptile_name)

Брауни = isMammal(“Собака”)

Выход:

Собака рожает детенышей

Собака — это животное.

Переопределение метода Python

В Pythоn вы можете переопределить метод. Рассмотрим следующий пример.

класс Животное():

определение __init__(self):

self.value = “Внутри класса Animal”

определение шоу(self):

print(self.value)

класс Собака(Животное):

определение __init__(self):

self.value = “Внутри класса Dog”

определение шоу(self):

print(self.value)

obj1 = Животное()

obj2 = Собака()

obj1.показать()

obj2.показать()

Выход:

Внутри класса Animal

Внутри класса Собаки

Переопределение того же метода в дочернем классе изменяет функциональность метода родительского класса.

Вы рассматриваете профессию в области Data Science? Тогда получите сертификат Data Science Bootcamp уже сегодня!

Станьте экспертом в Python с Simplilearn!

Одной из важнейших концепций ООР является наследование. Оно обеспечивает повторное использование кода, читаемость и передачу свойств, что помогает создавать оптимизированный и эффективный код. Язык программирования Python богат такими концепциями, как наследование. Массовые приложения Python требуют увеличения числа программистов Python на текущем рынке. Зарегистрируйтесь на сертификацию по науке о данных от SimpliLearn, чтобы усовершенствовать свои навыки и ускорить обучение, и вы станете разработчиком Python в кратчайшие сроки.

Программы для Windows, мобильные приложения, игры - ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале - Подписывайтесь:)

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *