Un script Python peut faire à la fois une programmation structurée et une programmation orientée objet (OOP). Super () est une fonction python intégrée de OOP. La connaissance de base de la POO est préférée pour comprendre le but et l'utilisation du
super() méthode. L'une des caractéristiques importantes de la POO est l'héritage. Une nouvelle classe peut être créée en héritant des fonctionnalités d'une autre classe, et elle est appelée héritage. Ici, la nouvelle classe est appelée sous-classe ou classe enfant, et une autre classe est appelée superclass ou classe parent.
Le super () La fonction est utilisée dans la classe enfant pour se référer à la classe parent et accéder à toutes les variables et méthodes de classe parent. Cette fonction rend l'héritage plus gérable. Comment cette fonction peut être utilisée dans Python s'est montrée dans ce tutoriel.
Exemple-1: utilisation de la fonction super () dans un seul héritage
Lorsqu'une classe enfant est créée en héritant d'une classe de parents, alors elle est appelée héritage unique. L'utilisation du super() La fonction dans un seul héritage s'est montré dans le script suivant. Livre est la classe parent ici qui contient une méthode de constructeur pour initialiser les données, BookType () Méthode pour imprimer le type du livre, et rabais() Méthode pour afficher l'offre de réduction est disponible ou non. Eng_book est la classe d'enfants ici qui contient une méthode de constructeur où le super() La fonction est utilisée pour appeler le constructeur de la classe parent. La classe enfant a une autre méthode nommée display_details () Pour imprimer les informations détaillées du livre. Les objets des classes parentaux et enfants ont été créés plus tard pour appeler les différentes méthodes des classes.
# Définir la classe parent
livre de classe:
# Définir le constructeur
Def __init __ (self, titre, auteur, type, offre):
soi.titre = titre
soi.auteur = auteur
soi.type = type
soi.offrir = offrir
# Définissez la fonction pour afficher le type de livre
def booktype (self):
Si vous-même.type == 1:
Print ("% S est un% S Book." %(soi.titre, «ingénierie»))
Si vous-même.type == 2:
Print ("% S est un% S Book." %(soi.titre, «médical»))
Si vous-même.type == 3:
Print ("% S est un% S Book." %(soi.titre, «finance»))
# Définissez la fonction pour afficher l'offre de réduction
Def Discount (Self):
Si vous-même.Offre == VRAI:
Print ("Le livre a une offre de réduction.")
autre:
Print ("Le livre n'a pas d'offre de réduction.")
# Définir la classe infantile
Classe Eng_Book (livre):
# Définir le constructeur
Def __init __ (self, titre, auteur, type, offre, prix):
super().__init __ (titre, auteur, type, offre)
soi.Prix = prix
# Définissez la fonction pour afficher les détails du livre
Def Display_Details (self):
super().rabais()
Si vous-même.Offre == VRAI:
soi.Prix = soi.Prix - soi.Prix * 0.15
print ("Nom du livre:% s"% self.titre)
print ("Nom de l'auteur:% s"% self.auteur)
Imprimer ("Prix:% 0.2f "% Self.prix)
Imprimer ("Utilisation de la classe parent:")
# Définir l'objet de la classe parent
ObjBook = Book («Microbiologie médicale», «Ernest Jawetz, Edward A. Adelberg, Joseph L. Melnick ', 2, faux)
# Fonction d'appel pour afficher le type de livre
objbook.BookType ()
# Fonction d'appel pour afficher l'offre de réduction
objbook.rabais()
Print ("\ Nusing Child Class:")
# Définir l'objet de classe d'enfants
objengbook = Eng_book («Mathématiques d'ingénierie», «H K Dass», 1, True, 50)
# Fonction d'appel pour afficher les détails du livre
objengbook.display_details ()
Sortir:
La sortie suivante apparaîtra après avoir exécuté le script ci-dessus. La première sortie a généré en utilisant l'objet de la classe parent, et la deuxième sortie a généré en utilisant l'objet de la classe enfant.
Exemple-2: utilisation de la fonction super () dans plusieurs héritages
Lorsqu'une nouvelle classe est générée en héritant de plusieurs classes, ce type d'héritage est appelé plusieurs héritages. L'utilisation de la fonction super () dans plusieurs héritages s'est montrée dans le script suivant. Département est la classe parent qui contient une méthode de constructeur pour initialiser les variables et le afficher() Méthode pour imprimer le nom du département. Cours La classe d'enfants est-elle héritée du Département classe, et il contient une méthode de constructeur et le display_course_info () Méthode pour afficher les détails du cours. Enseignants La classe d'enfants est-elle héritée du Département classe, et il contient une méthode de constructeur et le display_teacher_info () Méthode pour afficher les détails de l'enseignant. Enseignant_cours est la dernière classe enfant du script qui a été définie par héritage des deux Cours et Enseignants Des classes. Les objets des trois classes enfants ont été créés à la fin du script pour accéder aux différentes méthodes des classes. Le super() La fonction a été utilisée à l'intérieur de la méthode du constructeur de toutes les classes enfants pour appeler le constructeur de la classe parent. Quatre valeurs d'argument sont nécessaires pour créer l'objet de classe d'enfants car la construction de la classe du département contient quatre arguments.
# Définir la classe parentale
Département de classe ():
def __init __ (self, dept_name, total_courses, total_credit, total_teachers):
soi.dept_name = dept_name
soi.Total_Courses = Total_Courses
soi.total_credit = total_credit
soi.total_teachers = total_teachers
affichage déf (auto):
Print ("Nom du département:% S"% Self.dept_name)
# Définir la première classe d'enfants
Cours de classe (département):
Def __init __ (soi, nom, cours, crédits, enseignants):
# Appelez le constructeur de la classe parent
super().__init __ (nom, cours, crédits, enseignants)
def display_course_info (self):
imprimer ("Total Cours:% d"% self.Total_Courses)
Imprimer ("Crédits totaux:% D"% self.crédit total)
# Définir la deuxième classe enfant
enseignants de classe (département):
Def __init __ (soi, nom, cours, crédits, enseignants):
# Appelez le constructeur de la classe parent
super().__init __ (nom, cours, crédits, enseignants)
def display_teacher_info (self):
Imprimer ("Total des enseignants:% D"% Self.Total_teachers)
# Définir la troisième classe d'enfants héritée de deux classes
Class Teacher_course (cours, enseignants):
Def __init __ (soi, nom, cours, crédits, enseignants):
# Appelez le constructeur de la classe parent
super().__init __ (nom, cours, crédits, enseignants)
Def Display_Details (self):
super().afficher()
super().display_course_info ()
super().display_teacher_info ()
imprimer ("Utilisation de la première classe d'enfants")
ObjCourses = cours («CSE», 72, 150, 50)
obscènes.afficher()
obscènes.display_course_info ()
print ("\ nusing the Second Child Class")
Objteachers = Teachers ('BBA', 65, 140, 55)
instituteurs.afficher()
instituteurs.display_teacher_info ()
print ("\ nusing la troisième classe enfant héritée de plusieurs classes")
Objdct = Teacher_course ('English', 60, 122, 20)
objdct.display_details ()
Sortir:
La sortie suivante apparaîtra après avoir exécuté le script ci-dessus. Trois sorties ont été générées ici en créant les objets de trois classes enfants.
Conclusion:
Le super() La fonction ne peut être utilisée que dans la classe enfant pour appeler le constructeur et toute autre méthode de classe parentale. Les utilisations de cette fonction ont été montrées dans ce didacticiel en créant un héritage unique et à plusieurs niveaux. J'espère que le but de l'utilisation de cette fonction dans OOP sera effacé après avoir lu ce tutoriel.