Héritage Python

Héritage Python
L’héritage nous permet de définir une classe qui hérite de toutes les méthodes et propriétés d’une autre classe.
Classe mère est la classe dont on hérite, également appelée classe de base.
Classe enfant est la classe qui hérite d’une autre classe, également appelée classe dérivée.
Créer une classe parent
N’importe quelle classe peut être une classe parente, donc la syntaxe est la même que pour créer n’importe quelle autre classe :
Exemple
Créer une classe nommée Person
avec
firstname
et lastname
propriétés, et une printname
méthode:
Personne de classe :
def __init__(self, fname, lname):
self.firstname = fname
self.lastname = lname
def printname(self):
print(self.firstname, self.lastname)
#Utilisez la classe Person pour créer un objet, puis exécutez la méthode printname :
x = Personne(“Jean”, “Biche”)
x.printname()
Essayez-le vous-même »
Créer une classe enfant
Pour créer une classe qui hérite des fonctionnalités d’une autre classe, envoyez la classe parent en tant que paramètre lors de la création de la classe enfant :
Exemple
Créer une classe nommée Student
qui héritera des propriétés et des méthodes de Person
classe:
classe Étudiant(Personne):
passer
Note: Utilisez le pass
mot clé lorsque vous ne souhaitez pas ajouter d’autres propriétés ou méthodes à la classe.
Maintenant, la classe Student a les mêmes propriétés et méthodes que la classe Person.
Exemple
Utilisez le Student
classe pour créer un objet, puis exécutez la printname
méthode:
x = Étudiant(“Mike”, “Olsen”)
x.printname()
Essayez-le vous-même »
Ajouter la fonction __init__()
Jusqu’à présent, nous avons créé une classe enfant qui hérite des propriétés et des méthodes de son parent.
Nous voulons ajouter le __init__()
fonction à la classe enfant (au lieu de la pass
mot-clé).
Note: Le __init__()
La fonction est appelée automatiquement chaque fois que la classe est utilisée pour créer un nouvel objet.
Exemple
Ajouter le __init__()
fonction à la
Student
classe:
classe Étudiant(Personne):
def __init__(self, fname, lname):
#ajouter des propriétés, etc.
Lorsque vous ajoutez le __init__()
fonction, la classe enfant n’héritera plus de la classe parent __init__()
fonction.
Note: Celui de l’enfant __init__()
fonction remplace l’héritage des parents
fonction.
__init__()
Pour conserver l’héritage des parents __init__()
fonction, ajouter un appel au parent __init__()
fonction:
Exemple
classe Étudiant(Personne):
def __init__(self, fname, lname):
Person.__init__(self, fname, lname)
Essayez-le vous-même »
Nous avons maintenant ajouté avec succès la fonction __init__() et conservé l’héritage de la classe parente, et nous sommes prêts à ajouter des fonctionnalités dans le
__init__()
fonction.
Utilisez la fonction super()
Python a aussi un super()
fonction qui fera que la classe enfant hérite de toutes les méthodes et propriétés de son parent :
Exemple
classe Étudiant(Personne):
def __init__(self, fname, lname):
super().__init__(fname, lname)
Essayez-le vous-même »
En utilisant le super()
fonction, vous n’êtes pas obligé d’utiliser le nom de l’élément parent, il héritera automatiquement des méthodes et des propriétés de son parent.
Ajouter des propriétés
Exemple
Ajouter une propriété appelée graduationyear
au
Student
classe:
classe Étudiant(Personne):
def __init__(self, fname, lname):
super().__init__(fname, lname)
année d’obtention du diplôme = 2019
Essayez-le vous-même »
Dans l’exemple ci-dessous, l’année 2019
doit être une variable, et passé dans le
Student
classe lors de la création d’objets élèves. Pour ce faire, ajoutez un autre paramètre dans la fonction __init__() :
Exemple
Ajouter un year
paramètre, et passez la bonne année lors de la création d’objets :
classe Étudiant(Personne):
def __init__(self, fname, lname, year):
super().__init__(fname, lname)
self.graduationyear = année
x = Étudiant(“Mike”, “Olsen”, 2019)
Essayez-le vous-même »
Ajouter des méthodes
Exemple
Ajouter une méthode appelée welcome
au
Student
classe:
classe Étudiant(Personne):
def __init__(self, fname, lname, year):
super().__init__(fname, lname)
self.graduationyear = année
def bienvenue (auto):
print(“Bienvenue”, self.firstname, self.lastname, “dans la classe de”, self.graduationyear)
Essayez-le vous-même »
Si vous ajoutez une méthode dans la classe enfant avec le même nom qu’une fonction dans la classe parent, l’héritage de la méthode parent sera remplacé.
#Héritage #Python