Langage Python

Introduction à la programmation orientée objet en Python

Classes

Comme tout autre langage de programmation orientée objet, Python prend en charge les classes.

  • Les classes sont créées par mot-clé class.
  • Les attributs sont les variables qui appartiennent à la classe.
  • Les attributs sont toujours publiques et sont accessibles à l’aide de l’opérateur point (.). Ex .: NomClass.NomAttribut
    class Personne:
        Nom="ESSADDOUKI"
        Prenom="Mostafa"
        annee=2019
    
    p=Personne()
    print(p.Nom)
    p.Prenom='Ismail'
    print(p.Prenom)
    print(p.annee)

Méthodes

Une méthode est un groupe de code destiné à effectuer une tâche particulière dans le code de votre Python.

  • Une fonction qui appartient à une classe s'appelle une méthode.
  • Toutes les méthodes nécessitent le paramètre 'self'. Si vous avez codé dans un autre langage POO, vous pouvez considérer 'self' comme le mot-clé 'this' utilisé pour l’objet en cours. La variable d’instance actuelle est alors masquée. 'self' Fonctionne généralement comme ceci.
  • Le mot clé 'def' est utilisé pour créer une nouvelle méthode.
    class Personne:
        nom=''
        prenom=''
        annee=0
        def modifier(self,nom,prenom,annee):
            self.nom=nom
            self.prenom=prenom
            self.annee=annee
    
    p=Personne()
    p.modifier('ESSADDOUKI','Mostafa',2019)
    
    print(p.nom)
    print(p.prenom)
    print(p.annee)
    ESSADDOUKI
    Mostafa
    2019

Méthode  __init__

La méthode __init__ est similaire aux constructeurs en C ++ et Java. Il est exécuté dès qu'un objet d'une classe est instancié. Cette méthode est utile pour effectuer l’initialisation que vous voulez faire avec votre objet.

    class Personne:
        nom=''
        prenom=''
            
        # constructeur de la classe
        def __init__(self, nom, prenom):      
             self.nom=nom
            self.prenom=prenom
                
        def affiche(self):
            print("Nom : ",self.nom)
            print("Prénom : ",self.prenom)

Variables de classe et d'instance (ou attributs)

En Python, les variables d'instance sont des variables dont la valeur est assignée à l'intérieur d'un constructeur ou d'une méthode avec self.

Les variables de classe sont des variables dont la valeur est attribuée à la classe.

    class Personne:
        # variable de la classe
        departement='Informatique'
    
        # constructeur de la classe
        def __init__(self, nom, prenom):  
    
            # variables d'instances    
            self.nom=nom
            self.prenom=prenom
        
        # ajouter un attribut email à une instance de classe
        def SetEmail(self,email):
            self.email=email
        
        def affiche(self):
            print('Nom : ',self.nom)
            print('Prénom : ',self.prenom)
            print('E-mail : ',self.email)
    
    p1=Personne('ESSADDOUKI','Mostafa')
    p1.SetEmail('essaddouki@gmail.com')
    p1.affiche()
    
    print('-----------------')

    p2=Personne('Kayouh','Mohamed')
    p2.affiche()
    Nom :  ESSADDOUKI
    Prénom :  Mostafa
    E-mail :  essaddouki@gmail.com
    -----------------
    Nom :  Kayouh
    Prénom :  Mohamed
    Traceback (most recent call last):
        File "classe2.py", line 26, in 
            p2.affiche()
        File "classe2.py", line 19, in affiche
            print('E-mail : ',self.email)
        AttributeError: 'Personne' object has no attribute 'email' 

Ici l'attribut email c'est un attribut d'instance p1 et non pas un attribut de la classe

Héritage

L'héritage est défini comme une manière par laquelle une classe particulière hérite des fonctionnalités de sa classe de base. La classe de base est également appelée «Superclasse» et la classe qui hérite de la Superclasse est appelée «Sous-classe».

    class Personne:
        nom=''
        prenom=''
    
        # constructeur de la classe
        def __init__(self, nom, prenom):      
            self.nom=nom
            self.prenom=prenom
        
        def affiche(self):
            print("Nom : ",self.nom)
            print("Prénom : ",self.prenom)
    
    class Etudiant(Personne):
    
        annee_inscription=2018
    
        # constructeur de la classe
        def __init__(self, nom, prenom,annee):    
            # appeler le contructeur de la "super-class"
            super().__init__(nom, prenom)   
            self.annee_inscription=annee
        
        def affiche(self):
            # appeler la méthode affiche de la 'super-class'
            super().affiche()
    
            # afficher l'année d'inscription
            print("Année d'inscription : ",self.annee_inscription)
        
    
    etd=Etudiant('ESSADDOUKI','Ismail',2019)
    etd.affiche()
    Nom :  ESSADDOUKI
    Prénom :  Ismail
    Année d'inscription :  2019

Itérateurs

Les itérateurs sont des objets sur lesquels on peut effectuer une itération.

  • Python utilise la méthode __iter __ () pour renvoyer un objet itérateur de la classe.
  • L'objet itérateur utilise ensuite la méthode __next __ () pour obtenir l'élément suivant.
  • Les boucles for s'arrêtent lorsque StopIteration Exception est levée.
    class Tableau:
        donnee=[]
        index=-1
        # constructeur de la classe
        def __init__(self, tab):
            self.donnee=tab.copy()
        
        def __iter__(self): 
            return self
        
        def __next__(self): 
            if self.index == len(self.donnee)-1: 
                raise StopIteration     
            self.index+= 1
            return self.donnee[self.index]
    
    T=[1, 3, 5, 7, 8, 13, 20, 25]
    
    Tab=Tableau(T)
    
    for elm in Tab:
        print(elm)
    1
    3
    5
    7
    8
    13
    20
    25

Partager ce cours avec tes amis :
Rédigé par Mostafa Sedoki
Professeur d'Informatique dans les CPGE

Cours Similaires :