Skrypt Pythona może wykonywać zarówno programowanie ustrukturyzowane, jak i programowanie obiektowe (OOP). Super () to wbudowana funkcja Pythona OOP. Podstawowa znajomość OOP jest preferowana do zrozumienia celu i użycia
Super() metoda. Jedną z ważnych cech OOP jest dziedzictwo. Nową klasę można stworzyć, dziedzicząc funkcje innej klasy i nazywa się dziedziczeniem. Tutaj nowa klasa nazywa się podklasą lub klasą dziecka, a inna klasa nazywa się superklasy lub klasa nadrzędna.
Super () Funkcja jest używana w klasie dziecięcej w odniesieniu do klasy nadrzędnej i dostępu do wszystkich zmiennych i metod klasy nadrzędnej. Ta funkcja sprawia, że dziedzictwo jest łatwiejsze. Jak można zastosować tę funkcję w Pythonie, pokazano w tym samouczku.
Przykład-1: Użycie funkcji super () w pojedynczym dziedzictwie
Gdy klasa dziecięca jest tworzona przez odziedziczenie klasy nadrzędnej, nazywa się ją pojedynczą dziedziczeniem. Użycie Super() Funkcja w pojedynczym dziedzictwie pokazano w następującym skrypcie. Książka jest tutaj klasą nadrzędną, która zawiera metodę konstruktora do inicjowania danych, BookType () metoda wydrukowania rodzaju książki i rabat() Metoda wyświetlania oferty rabatowej jest dostępna lub nie. Eng_book to tutaj klasa dziecięca, która zawiera metodę konstruktora, w której Super() Funkcja służy do wywołania konstruktora klasy nadrzędnej. Klasa dziecięca ma inną wymienioną metodę display_details () Aby wydrukować szczegółowe informacje z książki. Obiekty klas dla rodziców i dzieci zostały później utworzone, aby wywołać różne metody klas.
# Zdefiniuj klasę nadrzędną
Książka klasowa:
# Zdefiniuj konstruktor
def __init __ (jaźń, tytuł, autor, typ, oferta):
samego siebie.tytuł = tytuł
samego siebie.Autor = autor
samego siebie.typ = typ
samego siebie.oferta = oferta
# Zdefiniuj funkcję, aby wyświetlić typ książki
def BookType (ja):
Jeśli ja.typ == 1:
Drukuj („ %s to książka %s." %(samego siebie.tytuł, „inżynieria”))
Jeśli ja.typ == 2:
Drukuj („ %s to książka %s." %(samego siebie.Tytuł, „Medical”))
Jeśli ja.typ == 3:
Drukuj („ %s to książka %s." %(samego siebie.tytuł, „finanse”))
# Zdefiniuj funkcję, aby wyświetlić ofertę rabatową
def Discount (Self):
Jeśli ja.Oferta == True:
Drukuj („Książka ma ofertę rabatową.")
w przeciwnym razie:
Drukuj („Książka nie ma oferty rabatowej.")
# Zdefiniuj klasę dziecka
Class Eng_Book (książka):
# Zdefiniuj konstruktor
def __init __ (jaźń, tytuł, autor, typ, oferta, cena):
Super().__init __ (tytuł, autor, wpisz, oferta)
samego siebie.Cena = cena
# Zdefiniuj funkcję, aby wyświetlić szczegóły książki
def display_details (self):
Super().rabat()
Jeśli ja.Oferta == True:
samego siebie.cena = ja.Cena - ja.Cena * 0.15
Drukuj („Nazwa książki: %s” %self.tytuł)
Drukuj („Nazwa autora: % s” % self.autor)
Drukuj („Cena: %0.2f " % jaźń.cena)
Drukuj („Korzystanie z klasy nadrzędnej:”)
# Zdefiniuj obiekt klasy nadrzędnej
objbook = książka („Microbiology Microbiology”, „Ernest Jawetz, Edward A. Adelberg, Joseph L. Melnick ', 2, false)
# Funkcja połączenia, aby wyświetlić typ książki
objbook.BookType ()
# Funkcja połączenia, aby wyświetlić ofertę rabatową
objbook.rabat()
Drukuj („\ nusing Child Class:”)
# Zdefiniuj obiekt klasy dzieci
objengbook = eng_book („Inżynieria matematyki”, „h k dass”, 1, true, 50)
# Funkcja połączenia, aby wyświetlić szczegóły książki
objengbook.display_details ()
Wyjście:
Następujące dane wyjściowe pojawią się po wykonaniu powyższego skryptu. Pierwsze wyjście wygenerowało przy użyciu obiektu klasy nadrzędnej, a drugie wyjście wygenerowało przy użyciu obiektu klasy dziecka.
Przykład-2: użycie funkcji super () w wielu dziedziczeniach
Gdy nowa klasa jest generowana przez dziedziczenie wielu klas, ten rodzaj dziedziczenia nazywa się wieloma dziedzictwami. Użycie funkcji super () w wielu dziedziczeniach pokazano w następującym skrypcie. Dział to klasa nadrzędna, która zawiera metodę konstruktora do inicjalizacji zmiennych i wyświetlacz() Metoda wydrukowania nazwy działu. Kursy Czy klasa dzieci odziedziczona po Dział klasa i zawiera metodę konstruktora i display_course_info () metoda wyświetlania szczegółów kursu. Nauczyciele Czy klasa dzieci odziedziczona po Dział klasa i zawiera metodę konstruktora i display_teacher_info () metoda wyświetlania szczegółów nauczyciela. Nauczyciela_course jest ostatnią klasą dziecięcą skryptu, która została zdefiniowana przez odziedziczenie obu Kursy I Nauczyciele zajęcia. Obiekty trzech klas dziecka zostały utworzone na końcu skryptu, aby uzyskać dostęp do różnych metod klas. Super() Funkcja została zastosowana w metodzie konstruktora wszystkich klas dziecka, aby wywołać konstruktor klasy nadrzędnej. Konieczne są cztery wartości argumentów do utworzenia obiektu klasy dzieci, ponieważ konstrukcja klasy działu zawiera cztery argumenty.
# Zdefiniuj klasę nadrzędną
Departament klas ():
def __init __ (self, Dept_name, Total_Courses, Total_Credit, Total_Teachers):
samego siebie.Dept_name = Dept_name
samego siebie.Total_Courses = Total_Courses
samego siebie.total_credit = total_credit
samego siebie.Total_Teachers = Total_Teachers
Wyświetlacz def (self):
Drukuj („Nazwa działu: % s” % self.Dept_name)
# Zdefiniuj pierwszą klasę dziecka
Kursy klasowe (dział):
def __init __ (ja, imię, kursy, kredyty, nauczyciele):
# Zadzwoń do konstruktora klasy nadrzędnych
Super().__init __ (nazwa, kursy, kredyty, nauczyciele)
def display_course_info (self):
Drukuj („Całkowite kursy: % d” % jaźń.Total_Courses)
Drukuj („Całkowite kredyty: % d” % jaźń.całkowity kredyt)
# Zdefiniuj drugą klasę dziecka
Nauczyciele klas (dział):
def __init __ (ja, imię, kursy, kredyty, nauczyciele):
# Zadzwoń do konstruktora klasy nadrzędnych
Super().__init __ (nazwa, kursy, kredyty, nauczyciele)
def display_teacher_info (self):
Drukuj („Total Teachers: % D” % jaźń.Total_Teachers)
# Zdefiniuj trzecią klasę dziecięcą odziedziczoną po dwóch klasach
Klasa nauczycielka_course (kursy, nauczyciele):
def __init __ (ja, imię, kursy, kredyty, nauczyciele):
# Zadzwoń do konstruktora klasy nadrzędnej
Super().__init __ (nazwa, kursy, kredyty, nauczyciele)
def display_details (self):
Super().wyświetlacz()
Super().display_course_info ()
Super().display_teacher_info ()
Drukuj („Korzystanie z pierwszej klasy dziecięcej”)
objcourses = kursy („cse”, 72, 150, 50)
objcourses.wyświetlacz()
objcourses.display_course_info ()
Drukuj („\ nusing the drugiej klasy dzieci”)
objTeachers = nauczyciele („BBA”, 65, 140, 55)
objteachers.wyświetlacz()
objteachers.display_teacher_info ()
Drukuj („\ nusing the Trzeciej Klasy Dziedziconej odziedziczonej po wielu klasach”)
objdct = nauczyciel_kourse („angielski”, 60, 122, 20)
OBJDCT.display_details ()
Wyjście:
Następujące dane wyjściowe pojawią się po wykonaniu powyższego skryptu. Wygenerowano tutaj trzy wyjścia, tworząc obiekty trzech klas dzieci.
Wniosek:
Super() Funkcji można używać tylko w klasie dziecięcej do wywołania konstruktora i każdej innej metody klasy nadrzędnej. Zastosowania tej funkcji zostały pokazane w tym samouczku, tworząc dziedzictwo pojedyncze i wielopoziomowe. Mam nadzieję, że cel użycia tej funkcji w OOP zostanie wyczyszczony po przeczytaniu tego samouczka.