Python Super Function

Python Super Function
Uno script Python può eseguire sia la programmazione strutturata che il programma di programmazione orientata agli oggetti (OOP). Super () è una funzione Python integrata di OOP. La conoscenza di base dell'OOP è preferita per comprendere lo scopo e l'uso del super() metodo. Una delle caratteristiche importanti dell'OOP è l'eredità. Una nuova classe può essere creata ereditando le funzionalità di un'altra classe e si chiama Eredità. Qui, la nuova classe si chiama classe sottoclasse o figlio e un'altra classe si chiama superclasse o classe genitore. Il super () La funzione viene utilizzata nella classe figlio per fare riferimento alla classe genitore e accedere a tutte le variabili e metodi della classe principale. Questa funzione rende l'eredità più gestibile. In che modo questa funzione può essere utilizzata in Python ha mostrato in questo tutorial.

Esempio-1: uso della funzione super () nella singola eredità

Quando una classe figlio viene creata ereditando una classe genitore, allora si chiama singola eredità. L'uso del super() La funzione in una singola eredità ha mostrato nel seguente script. Libro è la classe genitore qui che contiene un metodo del costruttore per inizializzare i dati, bookType () metodo per stampare il tipo di libro e sconto() Metodo per visualizzare l'offerta di sconto è disponibile o meno. Eng_Book è la classe figlio qui che contiene un metodo del costruttore in cui il super() La funzione viene utilizzata per chiamare il costruttore della classe genitore. La classe figlio ha un altro metodo chiamato display_details () Per stampare le informazioni dettagliate del libro. Gli oggetti delle classi genitore e figlio sono stati creati in seguito per chiamare i diversi metodi delle classi.

# Definisci la classe genitore
libro di classe:
# Definire il costruttore
def __init __ (self, titolo, autore, tipo, offerta):
se stesso.Titolo = titolo
se stesso.autore = autore
se stesso.tipo = tipo
se stesso.offerta = offerta
# Definisci la funzione per visualizzare il tipo di libro
def booktype (self):
se sé.Tipo == 1:
Stampa (" %s è un libro di %s." %(se stesso.titolo, 'ingegneria'))
se sé.tipo == 2:
Stampa (" %s è un libro di %s." %(se stesso.titolo, 'medico'))
se sé.tipo == 3:
Stampa (" %s è un libro di %s." %(se stesso.titolo, 'finanza'))
# Definisci la funzione per visualizzare l'offerta di sconto
def sconto (self):
se sé.offerta == true:
Stampa ("Il libro ha un'offerta di sconto.")
altro:
Stampa ("Il libro non ha offerta di sconti.")
# Definisci la classe figlio
Classe Eng_Book (libro):
# Definire il costruttore
def __init __ (self, titolo, autore, tipo, offerta, prezzo):
super().__init __ (titolo, autore, tipo, offerta)
se stesso.prezzo = prezzo
# Definisci la funzione per visualizzare i dettagli del libro
def display_details (self):
super().sconto()
se sé.offerta == true:
se stesso.prezzo = self.Prezzo - Self.Prezzo * 0.15
Stampa ("Nome libro: %s" %self.titolo)
Stampa ("Nome autore: % s" % self.autore)
Stampa ("Prezzo: %0.2F " % Self.prezzo)
Stampa ("Utilizzo della classe principale:")
# Definisci oggetto della classe genitore
objbook = book ('Medical Microbiology', 'Ernest Jawetz, Edward A. Adelberg, Joseph L. Melnick ', 2, false)
# Chiama la funzione per visualizzare il tipo di libro
objbook.bookType ()
# Chiama la funzione per visualizzare l'offerta di sconto
objbook.sconto()
print ("\ nusing Child Class:")
# Definisci oggetto della classe figlio
objengbook = eng_book ('ingegneria matematica', 'h k dass', 1, true, 50)
# Chiama la funzione per visualizzare i dettagli del libro
objengbook.display_details ()

Produzione:

Verrà visualizzato il seguente output dopo aver eseguito lo script sopra. Il primo output ha generato utilizzando l'oggetto della classe principale e il secondo output ha generato usando l'oggetto della classe figlio.

Esempio-2: uso della funzione super () in eredità multiple

Quando viene generata una nuova classe ereditando più classi, questo tipo di eredità viene chiamato eredità multipla. L'uso della funzione super () nelle eredità multiple ha mostrato nel seguente script. Dipartimento è la classe genitore che contiene un metodo del costruttore per inizializzare le variabili e il Schermo() Metodo per stampare il nome del dipartimento. Corsi sono la classe infantile ereditata da Dipartimento classe, e contiene un metodo del costruttore e il display_course_info () Metodo per visualizzare i dettagli del corso. Insegnanti sono la classe infantile ereditata da Dipartimento classe, e contiene un metodo del costruttore e il display_teacher_info () Metodo per visualizzare i dettagli dell'insegnante. Insegnante_course è l'ultima classe figlio della sceneggiatura che è stata definita ereditando entrambi Corsi E Insegnanti classi. Gli oggetti delle tre classi di figli sono stati creati alla fine dello script per accedere ai diversi metodi delle classi. IL super() La funzione è stata utilizzata all'interno del metodo del costruttore di tutte le classi figlio per chiamare il costruttore della classe madre. Sono necessari quattro valori di argomento per creare l'oggetto della classe figlio perché il costrutto della classe del dipartimento contiene quattro argomenti.

# Definisci la classe dei genitori
Dipartimento di classe ():
def __init __ (self, deppt_name, total_courses, total_credit, total_teachers):
se stesso.dipt_name = deppt_name
se stesso.Total_Courses = Total_Courses
se stesso.total_credit = total_credit
se stesso.Total_Teachers = Total_Teachers
def displa (self):
Stampa ("Nome del reparto: % s" % self.dipt_name)
# Definisci la prima classe di bambini
Corsi di classe (dipartimento):
def __init __ (sé, nome, corsi, crediti, insegnanti):
# Chiama il costruttore della classe genitore
super().__init __ (nome, corsi, crediti, insegnanti)
def display_course_info (self):
Stampa ("Corsi totali: % d" % Self.total_courses)
Stampa ("Crediti totali: % d" % Self.total_credit)
# Definisci la seconda classe figlio
insegnanti di classe (dipartimento):
def __init __ (sé, nome, corsi, crediti, insegnanti):
# Chiama il costruttore della classe genitore
super().__init __ (nome, corsi, crediti, insegnanti)
def display_teacher_info (self):
Stampa ("Insegnanti totali: % d" % Self.Total_Teachers)
# Definisci la terza classe di bambini ereditata da due classi
Classe Teacher_Course (corsi, insegnanti):
def __init __ (sé, nome, corsi, crediti, insegnanti):
# Chiama il costruttore della classe madre
super().__init __ (nome, corsi, crediti, insegnanti)
def display_details (self):
super().Schermo()
super().display_course_info ()
super().display_teacher_info ()
Stampa ("Utilizzo della prima classe figlio")
objcourses = corsi ('cse', 72, 150, 50)
objcourses.Schermo()
objcourses.display_course_info ()
Stampa ("\ Nusting the Second Child Class")
objteachers = insegnanti ('BBA', 65, 140, 55)
objteachers.Schermo()
objteachers.display_teacher_info ()
Stampa ("\ Nusting the Third Child Class Eredite da più classi")
OBJDCT = Teacher_Course ('English', 60, 122, 20)
objdct.display_details ()

Produzione:

Verrà visualizzato il seguente output dopo aver eseguito lo script sopra. Qui sono stati generati tre output creando gli oggetti di tre classi di figli.

Conclusione:

IL super() La funzione può essere utilizzata solo all'interno della classe figlio per chiamare il costruttore e qualsiasi altro metodo della classe genitore. Gli usi di questa funzione sono stati mostrati in questo tutorial creando l'eredità singola e multi-livello. Spero che lo scopo di usare questa funzione in OOP venga cancellato dopo aver letto questo tutorial.