Les classes et l’héritage en Python

Tout langage de programmation orienté objet ne serait pas bien d’être étudié ou utilisé s’il ne support pas l’héritage. Bien sûr, Python prend en charge l’héritage, il prend même en charge l’héritage multiple.
 
 
Les classes peuvent hériter d’autres classes. Une classe peut hériter d’attributs et de méthodes de comportement d’une autre classe, appelée superclasse. Une classe qui hérite d’une superclasse est appelée une sous-classe, également appelée classe file. Les super-classes sont parfois aussi appelées classe mère. Il existe une relation de hiérarchie entre les classes. Cela ressemble aux relations que nous connaissons dans la vie réelle. Pensez aux véhicules, par exemple. Nous pourrions implémenter une classe de véhicules en Python, qui pourrait avoir des méthodes comme accélérer et freiner.
 


 

Exemple d’héritage simple
class Vehicule(object): 
       
    # Constructeur 
    def __init__(self, marque, vitesse):
        self.marque = marque
        self.vitesse = vitesse 

    # Pour récupérer la marque
    def getMarque(self): 
        return self.marque 
   
    # Pour vérifier si cette vehicule est une voiture
    def estUneVoiture(self): 
        return False
   
   
# Sous classe
class Voiture(Vehicule): 

    def estUneVoiture(self): 
        return True
   
# code de test 
vh = Vehicule("Moto", 100)  # Un objet de vehicule
print(vh.getMarque(), vh.estUneVoiture()) 
   
vt = Voiture("Mercedes", 300) # Un objet de voiture
print(vt.getMarque(), vt.estUneVoiture())

Cela produit le résultat suivant:

Moto False
Mercedes True

 
 

Exemple d’héritage multiple


Lorsqu’une classe file hérite de plusieurs classes mère, on appelle ça « héritage multiple ». Contrairement à Java, Python prend en charge l’héritage multiple. Nous spécifions toutes les classes parentes sous forme de liste séparée par des virgules entre parenthèses.

 class A(object): 
    def __init__(self): 
        self.str1 = "Hello"
        print("A")
  
class B(object): 
    def __init__(self): 
        self.str2 = "World"        
        print("B")
  
class C(A, B): 
    def __init__(self): 
          
        # Appel le constructeur de la classe A et B
        A.__init__(self) 
        B.__init__(self) 
        print("C")
          
    def afficherMsg(self): 
        print(self.str1, self.str2) 
         
  
c = C() 
c.afficherMsg()
Conclusion

L’héritage dans la programmation orienté objet peut permettre de respecter le principe de développement logiciel DRY(Don’t Repeat Yourself), ce qui permet de faire plus avec moins de code et de répétition. Héritage oblige également les programmeurs à réfléchir à la manière dont ils conçoivent les programmes qu’ils créent pour garantir l’efficacité et la clarté du code.
 
QCM Python

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *