Python

Héritage Python

Héritage Python

Le Python est un langage de programmation orienté objet. Dans un langage de programmation orienté objet, nous créons les classes et exécutons la fonctionnalité prévue. L'héritage est la caractéristique fondamentale des langages de programmation orientés objet. L'héritage peut être défini comme la capacité d'une classe à hériter de toutes les fonctions et propriétés d'une autre classe. L'héritage permet essentiellement d'étendre les propriétés d'une classe existante. L'héritage est exploité avec les deux concepts principaux:

  1. Classe parent ou classe de base
  2. Classe enfant ou classe dérivée

La classe parent est la classe qui permet d'hériter d'autres classes. On l'appelle aussi la classe de base. La classe enfant ou la classe dérivée est cette classe qui hérite de toutes les propriétés et fonctions d'une autre classe. L'héritage favorise plusieurs avantages, je.e., c'est la représentation du phénomène d'héritage du monde réel. Il encourage la réutilisation du code. Si une fonction est définie dans une classe, l'autre classe peut hériter de cette classe et utiliser toutes les fonctions existantes. Il n'est pas nécessaire d'écrire le même code encore et encore pour effectuer des tâches similaires. L'héritage est appliqué à plusieurs niveaux. Par exemple, si la classe B est héritée de A et que la classe C est héritée de la classe B, alors la classe C possède toutes les propriétés de la classe B ainsi que la classe A. La syntaxe de l'héritage est la suivante :

Classe ParentClasse :
Détails d'implémentation de la classe parente
classe ChildClass :
Détails d'implémentation de la classe enfant

Bien que la classe enfant ait accès à toutes les fonctionnalités et fonctions de la classe parent, elle peut également ajouter ses nouvelles fonctionnalités et fonctions.

Cet article décrit et couvre tous les aspects de l'héritage Python.

Implémentation de l'héritage en Python

L'héritage peut être appliqué dans de nombreuses situations. Supposons que vous construisez un système logiciel pour une université. Il peut être composé de plusieurs parties prenantes telles que les étudiants, les enseignants, le personnel, etc. Ainsi, chaque personne a un nom, un âge, une adresse e-mail et d'autres propriétés communes. Il n'est pas nécessaire de déclarer séparément toutes les propriétés de chaque classe. Nous pouvons créer une classe de personne, et toutes les classes de parties prenantes peuvent hériter de toutes les propriétés et fonctions communes de la classe de personne. Dans ce cas, il n'est pas nécessaire d'écrire les propriétés communes dans chaque classe encore et encore. De même, on peut considérer une classe animale. Il y a des centaines de types d'animaux dans ce monde. Tous les animaux mangent, dorment et ont aussi des espèces. Ce concept peut également être implémenté en utilisant l'héritage.

Considérons l'animal comme une super classe et implémentons l'héritage. Dans l'exemple ci-dessous, nous avons créé une classe d'animaux. La classe animale est la classe parente. De plus, nous avons créé les classes Chien et Chat qui héritent des propriétés et fonctions de la classe animal. Le mot-clé pass est utilisé dans la classe enfant, lorsque nous n'avons pas à implémenter de fonctionnalité étendue dans la classe enfant.

#création de la classe parente
classe Animal :
#fonction d'initialisation
#initialisation le nom de l'animal et le type d'espèce
def __init__(self,name,specie_type):
soi.nom=nom
soi.specie_type=specie_type
#une fonction pour imprimer le nom de l'animal
def printname(self):
print("Le nom de l'animal est :",self.Nom)
#une fonction pour imprimer le type d'espèce animale
def printspecie(self):
print("Le type d'espèce est :",self.type_espèce)
#créer la classe chien comme classe enfant de la classe animal
classe Chien (Animal):
# aucune extension ou modification
passe
#maintenant la classe chien a accès à toutes les fonctions et propriétés de la classe animal
#création de l'objet classe chien
dogObj= Chien("Chien","carnivore")
chienObj.printname()
chienObj.printspecie()
#créer la classe chat comme classe enfant de la classe animal
classe Chat (Animal):
#la fonction d'initialisation de la classe cat
def __init__(self):
#appel et utilisation de la fonction d'initialisation de la classe animale
Animal.__init__(soi,"chat","mammifère carnivore")
#maintenant cat class a accès à toutes les fonctions et propriétés de la classe animal
#création de l'objet de classe chat
catObj= Chat()
catObj.printname()
catObj.printspecie()

Production

le "Animal.__init__(soi, "chat", "mammifère carnivore")" appeler la fonction d'initialisation de la classe Animal.

La fonction super()

Le Python fournit une fonction super() intégrée pour hériter de toutes les propriétés et fonctions de la classe parent. Lorsque nous utilisons la fonction super(), il n'est pas nécessaire de mentionner le nom de la classe parente comme nous l'avons fait dans "Animal.__init__(soi, "chat", "mammifère carnivore")" mais la fonction super() pointe automatiquement vers la classe parente. Utilisons la super fonction.

#création de la classe parente
classe Animal :
#fonction d'initialisation
#initialisation le nom de l'animal et le type d'espèce
def __init__(self,name,specie_type):
soi.nom=nom
soi.specie_type=specie_type
#une fonction pour imprimer le nom de l'animal
def printname(self):
print("Le nom de l'animal est :",self.Nom)
#une fonction pour imprimer le type d'espèce animale
def printspecie(self):
print("Le type d'espèce est :",self.type_espèce)
#créer la classe chien comme classe enfant de la classe animal
classe Chien (Animal):
#utilisation de la fonction super()
def __init__(self, name, specie_type):
super().__init__(nom, type_espèce)
#maintenant la classe chien a accès à toutes les fonctions et propriétés de la classe animal
#création de l'objet classe chien
dogObj= Chien("Chien","carnivore")
chienObj.printname()
chienObj.printspecie()
#créer la classe chat comme classe enfant de la classe animal
classe Chat (Animal):
#la fonction d'initialisation de la classe cat
#utilisation de la fonction super()
def __init__(self, name, specie_type):
super().__init__(nom, type_espèce)
#maintenant cat class a accès à toutes les fonctions et propriétés de la classe animal
#création de l'objet de classe chat
catObj= Chat("chat","mammifère carnivore")
catObj.printname()
catObj.printspecie()

Production

Ajoutons maintenant quelques fonctionnalités supplémentaires dans les classes enfants. Chaque classe hérite des propriétés et fonctions communes de la classe parent, mais la classe enfant peut avoir une classe supplémentaire destinée à cette classe particulière. Créons maintenant quelques propriétés et fonctions supplémentaires dans la classe chien et chat.

#création de la classe parente
classe Animal :
#fonction d'initialisation
#initialisation le nom de l'animal et le type d'espèce
def __init__(self,name,specie_type):
soi.nom=nom
soi.specie_type=specie_type
#une fonction pour imprimer le nom de l'animal
def printname(self):
print("Le nom de l'animal est :",self.Nom)
#une fonction pour imprimer le type d'espèce animale
def printspecie(self):
print("Le type d'espèce est :",self.type_espèce)
#créer la classe chien comme classe enfant de la classe animal
classe Chien (Animal):
#utilisation de la fonction super()
#nom d'animal de compagnie est une nouvelle fonctionnalité ajoutée
def __init__(self, name, specie_type, pet_name):
super().__init__(nom, type_espèce)
soi.pet_name=pet_name
#créer une nouvelle fonction
def printpetname(self):
print("Le nom de l'animal est :",self.nom d'animal domestique)
#maintenant la classe chien a accès à toutes les fonctions et propriétés de la classe animal
#créer l'objet classe chien
dogObj= Chien("Chien","carnivore","Max")
chienObj.printname()
chienObj.printspecie()
chienObj.printpetname()
#créer la classe chat comme classe enfant de la classe animal
classe Chat (Animal):
#la fonction d'initialisation de la classe cat
#utilisation de la fonction super()
#adding food et pet_name propriétés
def __init__(self, name, specie_type, food, pet_name):
super().__init__(nom, type_espèce)
soi.nourriture = nourriture
soi.pet_name=pet_name
#nouvelle fonction pour accéder aux informations alimentaires
def printfood(self):
print("Le chat aime :", self.aliments)
#nouvelle fonction pour le nom de l'animal
def printpetname(self):
print("Le nom de l'animal est :",self.nom d'animal domestique)
#maintenant cat class a accès à toutes les fonctions et propriétés de la classe animal
#création de l'objet de classe chat
catObj= Chat("chat","mammifère carnivore","Biscuit","Marguerite")
catObj.printname()
catObj.printspecie()

Production

Les fonctions supplantant

La fonction prioritaire est le concept important dans l'héritage. Une fonction est appelée fonction surchargée si le nom de la fonction est le même dans les classes parent et enfant mais que l'implémentation ou la fonctionnalité de la fonction est différente dans chaque classe. Voyons l'exemple de fonction surchargée dans la classe Animal. Dans l'exemple ci-dessous, nous avons également une fonction manger dans les classes d'animaux et dans ses classes enfants (Chien et Chat). Le nom de la fonction est le même dans les classes mais l'implémentation est différente.

#création de la classe parente
classe Animal :
def manger(se):
print("Tous les animaux mangent de la nourriture")
#création d'objet
animalObj = Animal()
#fonction d'appel
animalObj.manger()
#créer une classe de chien
classe Chien (Animal):
def manger(se):
print("Le chien mange de la viande")
#création d'objet
chienObj=Chien()
#fonction d'appel
chienObj.manger()
classe Chat (Animal):
def manger(se):
print("Le chat mange des biscuits et de la nourriture spéciale")
#création d'objet
catObj = Chat()
#fonction d'appel
catObj.manger()

Production

Conclusion

L'héritage est l'un des concepts fondamentaux des langages de programmation orientés objet. En utilisant l'héritage, nous créons les classes enfants qui héritent de toutes les fonctions et propriétés de la classe parent. L'héritage favorise la réutilisation du code. Cet article explique l'héritage en Python avec des exemples.

Ajoutez des gestes de souris à Windows 10 à l'aide de ces outils gratuits
Ces dernières années, les ordinateurs et les systèmes d'exploitation ont considérablement évolué. Il fut un temps où les utilisateurs devaient utilise...
Contrôlez et gérez le mouvement de la souris entre plusieurs moniteurs dans Windows 10
Gestionnaire de souris à double affichage vous permet de contrôler et de configurer le mouvement de la souris entre plusieurs moniteurs, en ralentissa...
WinMouse vous permet de personnaliser et d'améliorer le mouvement du pointeur de la souris sur un PC Windows
Si vous souhaitez améliorer les fonctions par défaut de votre pointeur de souris, utilisez un logiciel gratuit WinMouse. Il ajoute plus de fonctionnal...