Python

Функция супер () на Python

Функция супер () на Python
Python скриптът може да прави както структурирано програмиране, така и обектно-ориентирано програмиране (OOP). Super () е вградена функция на Python на OOP. Основните познания за ООП се предпочитат, за да се разбере целта и използването на супер () метод. Една от важните характеристики на ООП е наследяване. Нов клас може да бъде създаден чрез наследяване на характеристиките на друг клас и той се нарича Наследяване. Тук новият клас се нарича подклас или дъщерен клас, а друг клас се нарича суперклас или родителски клас. Супер () функция се използва в дъщерния клас за препратка към родителския клас и достъп до всички променливи и методи на родителския клас. Тази функция прави наследството по-управляемо. Как тази функция може да се използва в Python е показано в този урок.

Пример-1: Използване на функция super () при единично наследяване

Когато детски клас се създава чрез наследяване на родителски клас, тогава той се нарича единично наследяване. Използването на супер () функция в единично наследяване е показано в следния скрипт. Книга е родителският клас тук, който съдържа метод на конструктор за инициализиране на данните, bookType () метод за отпечатване на вида на книгата и отстъпка () метод за показване на офертата за отстъпка е наличен или не. Eng_book е дъщерният клас тук, който съдържа метод на конструктор, където супер () функция се използва за извикване на конструктора на родителския клас. Детският клас има друг метод с име display_details () за да отпечатате подробната информация на книгата. Обектите на родителски и дъщерни класове са създадени по-късно, за да извикат различните методи на класовете.

# Дефинирайте родителския клас
клас книга:
# Дефинирайте конструктор
def __init __ (самостоятелно, заглавие, автор, тип, оферта):
себе си.заглавие = заглавие
себе си.автор = автор
себе си.тип = тип
себе си.оферта = оферта
# Дефинирайте функцията за показване на типа книга
def bookType (самостоятелно):
ако аз.тип == 1:
print ("% s е книга% s."% (самостоятелно.заглавие, „Инженеринг“))
ако аз.тип == 2:
print ("% s е книга% s."% (самостоятелно.заглавие, "Медицински"))
ако аз.тип == 3:
print ("% s е книга% s."% (самостоятелно.заглавие, „Финанси“))
# Дефинирайте функцията за показване на офертата за отстъпка
def намаление (самостоятелно):
ако аз.оферта == Вярно:
print ("Книгата има оферта с отстъпка.")
друго:
print ("Книгата няма оферта за отстъпка.")
# Определете класа на детето
клас Eng_book (книга):
# Дефинирайте конструктор
def __init __ (самостоятелно, заглавие, автор, тип, оферта, цена):
супер ().__init __ (заглавие, автор, тип, оферта)
себе си.цена = цена
# Дефинирайте функцията за показване на подробностите за книгата
def display_details (самостоятелно):
супер ().отстъпка ()
ако аз.оферта == Вярно:
себе си.цена = себе си.цена - себе си.цена * 0.15
print ("Име на книгата:% s"% self.заглавие)
print ("Име на автора:% s"% self.автор)
print ("Цена:% 0.2f "% самостоятелно.цена)
print ("Използване на родителски клас:")
# Дефинирайте обект на родителски клас
objbook = Книга („Медицинска микробиология“, „Ърнест Явец, Едуард А. Adelberg, Joseph L. Melnick ', 2, False)
# Функция за повикване за показване на типа книга
objbook.bookType ()
# Функция повикване за показване на оферта за отстъпка
objbook.отстъпка ()
print ("\ nИзползване на детски клас:")
# Дефинирайте обект на дъщерния клас
objEngBook = Eng_book ('Инженерна математика', 'H K Dass', 1, True, 50)
# Функция за повикване за показване на подробности за книгата
objEngBook.display_details ()

Изход:

След изпълнението на горния скрипт ще се появи следният изход. Първият изход е генериран с помощта на обекта на родителския клас, а вторият изход е генериран с помощта на обекта на дъщерния клас.

Пример-2: Използване на функция super () в множество наследства

Когато се генерира нов клас чрез наследяване на множество класове, този тип наследяване се нарича множество наследства. Използването на функцията super () в множество наследства е показано в следващия скрипт. Отдел е родителският клас, който съдържа метод на конструктор за инициализиране на променливите и дисплей () метод за отпечатване на името на отдела. Курсове са дъщерният клас, наследен от Отдел клас и съдържа метод на конструктор и display_Course_info () метод за показване на детайлите на курса. Учители са дъщерният клас, наследен от Отдел клас и съдържа метод на конструктор и display_Teacher_info () метод за показване на детайлите на учителя. Учител_Курс е последният дъщерен клас на скрипта, който е дефиниран чрез наследяване и на двете Курсове и Учители класове. Обектите на трите дъщерни класа са създадени в края на скрипта за достъп до различните методи на класовете. The супер () функция е използвана в метода на конструктора на всички дъщерни класове за извикване на конструктора на родителския клас. За създаването на обекта на дъщерния клас са необходими четири стойности на аргумента, тъй като конструкцията на класа на отдела съдържа четири аргумента.

# Определете родителски клас
клас Отдел ():
def __init __ (self, dept_name, total_courses, total_credit, total_eachers):
себе си.dept_name = име на dept
себе си.total_courses = total_courses
себе си.общ_кредит = общ_кредит
себе си.общо_учители = общо_учители
def дисплей (самостоятелно):
print ("Име на отдела:% s"% самостоятелно.dept_name)
# Определете първия клас на детето
курсове (отдел):
def __init __ (себе си, име, курсове, кредити, учители):
# Извикайте конструктор на родителски клас
супер ().__init __ (име, курсове, кредити, учители)
def display_Course_info (самостоятелно):
print ("Общо курсове:% d"% самостоятелно.общо_курсове)
print ("Общо кредити:% d"% самостоятелно.общо_кредит)
# Определете втория клас дете
клас Преподаватели (отдел):
def __init __ (себе си, име, курсове, кредити, учители):
# Извикайте конструктор на родителски клас
супер ().__init __ (име, курсове, кредити, учители)
def display_Teacher_info (самостоятелно):
print ("Общо преподаватели:% d"% самостоятелно.общо_учители)
# Дефинирайте третия потомствен клас, наследен от два класа
class Teacher_Course (Курсове, Преподаватели):
def __init __ (себе си, име, курсове, кредити, учители):
# Извикайте конструктора на родителски клас
супер ().__init __ (име, курсове, кредити, учители)
def display_details (самостоятелно):
супер ().дисплей ()
супер ().display_Course_info ()
супер ().display_Teacher_info ()
print ("Използване на първия подчинен клас")
objCourses = Курсове ('CSE', 72, 150, 50)
objCourses.дисплей ()
objCourses.display_Course_info ()
print ("\ nИзползване на втория дъщерен клас")
objTeachers = Учители ('BBA', 65, 140, 55)
objTeachers.дисплей ()
objTeachers.display_Teacher_info ()
print ("\ nИзползване на третия потомствен клас, наследен от множество класове")
objDCT = Teacher_Course ('English', 60, 122, 20)
objDCT.display_details ()

Изход:

След изпълнението на горния скрипт ще се появи следният изход. Тук са генерирани три изхода чрез създаване на обектите на три дъщерни класа.

Заключение:

The супер () функция може да се използва само в дъщерния клас за извикване на конструктора и всеки друг метод на родителски клас. Употребата на тази функция е показана в този урок чрез създаване на наследство от едно ниво и на няколко нива. Надявам се целта на използването на тази функция в ООП да бъде изчистена след прочитане на този урок.

Емулирайте кликванията на мишката, като задържите курсора на мишката с кликаща мишка в Windows 10
Използването на мишка или клавиатура в неправилна поза при прекомерна употреба може да доведе до много здравословни проблеми, включително напрежение, ...
Добавете жестове на мишката към Windows 10, като използвате тези безплатни инструменти
През последните години компютрите и операционните системи значително се развиха. Имаше време, когато потребителите трябваше да използват команди за на...
Контролирайте и управлявайте движението на мишката между множество монитори в Windows 10
Двоен дисплей на мишката ви позволява да контролирате и конфигурирате движението на мишката между множество монитори, като забавя движенията му близо ...