Protége les méta caractères
Dans ce tutoriel, vous découvrirez l'héritage Python et comment l'utiliser pour réutiliser le code d'une classe existante
L'héritage permet à une classe de réutiliser la logique d'une classe existante.
class Personne: def __init__(self, fname, lname): self.prenom = fname self.nom = lname def affichenom(self): print(self.prenom, self.nom) #Utilisez la classe Personne pour créer un objet, puis exécutez la méthode affichenom : x = Personne("Anass", "Le Forgeron") x.affichenom()
class Etudiant(Personne): pass
Remarque : utilisez le mot clé pass lorsque vous ne souhaitez pas ajouter d'autres propriétés ou méthodes à la classe.
La classe Etudiant possède maintenant les mêmes propriétés et méthodes que la classe Personne.class Personne: def __init__(self, fname, lname): self.prenom = fname self.nom = lname def affichenom(self): print(self.prenom, self.nom) class Etudiant(Personne): pass #Utilisez la classe Etudiant pour créer un objet, puis exécutez la méthode affichenom : x = Etudiant("Anass", "Le Forgeron") x.affichenom()ET comme vous le constatez, bien que nous n'avons pas défini les attributs nom et prenom ni la méthode affichenom la classe Etudiant les a hérité de sa classe parente Perssonne et peut donc les utiliser.
class Etudiant(Personne): def __init__(self, fname, lname): #ici ajouter les propriétés et méthodes.Quand vous ajoutez la fonction __init__(), la classe enfant n'hérite plus de la fonction __init__() de son parent.
Remarque : la fonction __init__() de la classe enfant remplace l'héritage de la fonction __init__() du parent.
Pour conserver l'héritage de la fonction __init__() du parent, il faut ajouter un appel à la fonction __init__() du parent :class Etudiant(Personne): def __init__(self, fname, lname): Personne.__init__(self, fname, lname)Désormais, nous avons réussi à ajouter la fonction __init__() et à conserver l'héritage de la classe mère. Nous sommes donc prêts à ajouter des fonctionnalités dans la fonction __init__().
class Etudiant(Personne): def __init__(self, fname, lname): super().__init__(fname, lname)En utilisant la fonction super(), vous n'avez pas besoin d'utiliser le nom de la classe parentale, la classe enfant hérite automatiquement des méthodes et des propriétés de son parent.
class Etudiant(Personne): def __init__(self, fname, lname,annee): super().__init__(fname, lname) self.annee_du_diplome = annee x = Etudiant("Anass", "Le Forgeron",2021)
class Personne: def __init__(self, fname, lname): self.prenom = fname self.nom = lname def affichenom(self): print(self.prenom, self.nom) class Etudiant(Personne): def __init__(self, fname, lname,annee): super().__init__(fname, lname) self.annee_du_diplome = annee def Bienvenue(self): print("Bienvenue", self.prenom, self.nom, "dans le club de", self.annee_du_diplome) x = Etudiant("Anass", "Le Forgeron",2021) x.Bienvenue()Lorsque vous ajoutez une méthode à une classe enfant, donner lui le paramètre self.