0% ont trouvé ce document utile (0 vote)
290 vues24 pages

POO Python

Le document présente un cours sur la programmation orientée objet (POO) en Python, en expliquant ses principes, concepts et syntaxe. Il compare la POO à la programmation procédurale, souligne les avantages de l'encapsulation, de l'héritage et du polymorphisme, et fournit des exemples pratiques de classes et d'attributs. Enfin, il inclut un exercice pour définir une classe Personne avec des attributs et des méthodes.

Transféré par

Mejri Amenallah
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
290 vues24 pages

POO Python

Le document présente un cours sur la programmation orientée objet (POO) en Python, en expliquant ses principes, concepts et syntaxe. Il compare la POO à la programmation procédurale, souligne les avantages de l'encapsulation, de l'héritage et du polymorphisme, et fournit des exemples pratiques de classes et d'attributs. Enfin, il inclut un exercice pour définir une classe Personne avec des attributs et des méthodes.

Transféré par

Mejri Amenallah
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
Vous êtes sur la page 1/ 24

République Tunisienne Université de Carthage

Ministère de l’Enseignement Supérieur et Ecole Nationale d’Ingénieurs de Bizerte


de la Recherche Scientifique

Programmation orientée objet


Python
GI1 et GM1
(Semestre 2)

Safa Hachani & Islam ELLEUCH

[Link]@[Link] / elleuchislam@[Link]

2024-2025
CHAPITRE 4 – POO ET
HÉRITAGE

Partie 1-
Programmation Orientée
Objet (POO) avec python
Plan

La programmation orientée objet

Syntaxe Classe en Python

Exercice

3
Programmation Procédurale (PPD)

 Principe
 Le programme est divisé en petites parties appelées procédures /fonctions qui
effectuent des traitements sur des données.
 Il n’existe pas un lien direct entre les données et les traitements.
 Les données et les traitements sont séparés.
 Les données à traiter sont passées en arguments aux procédures

PPD

Traitement 1 Données Traitement 2

Traitement 3

 Exemples de langages procéduraux : C, Pascal …

4
Programmation Procédurale (PPD)

 Limites

 Complexité du code
 Difficulté de réutilisation du code.
 Difficulté de la maintenance et l’ajout de nouvelle fonctionnalités dans les
grandes applications.
 Nécessité de modification ou d’insertion des séquences.
 Difficulté du travail en équipe.

5
Programmation Orienté Objet (POO)

 Principe
 Le programme est composé de plusieurs objets qui contiennent :
 des données « internes »,
 des traitements qui manipulent ces données internes ou d’autres données
 Les données et leurs traitements sont regroupés dans une seule entité : objet.

POO Objet 1
Données

Traitements

Objet 2 Objet 3
Données Données

Traitements Traitements

6
Programmation Orienté Objet (POO)

 Principe
 Les données d’un objet sont appelées ses attributs.
 Les traitements d’un objet sont appelés ses méthodes.
 Exemples de langages orientés-objets : Python, C++, C#, Java, …

POO Objet 1
Données
Attributs

Méthodes
Traitements

Objet 2 Objet 3
Données
Attributs Données
Attributs

Méthodes
Traitements Méthodes
Traitements

7
Programmation Orienté Objet (POO)

 Introduction
 Paradigme (style) de programmation consistant à assembler des briques
logicielles (objets).
 Un objet représente un concept ou une entité du monde.

 La plupart des langages de programmation populaires aujourd’hui sont basés


sur l’approche objets. Mais les objets ne sont pas uniquement utilisés pour la
programmation...
 Bases de données objets(Oracle)
 Méthodes de conception objets (UML)
 HTML+CSS, (accompagné de Javascript, PHP...)

8
Programmation Orienté Objet (POO)

 Concept
Abstraction

Héritage

Polymorphisme

Concepts de
POO

Encapsulation
Objet

Classe

9
Concepts de la Programmation Orienté Objet

 Des objets... pour quoi faire?


 Objectif premier c’est faciliter le développement d’une application robuste.

 En clair, programmer de manière orientée objet, c'est écrire du code source


(potentiellement complexe) mais que l'on masque en le plaçant à l'intérieur
d'un objet.

 Pour la personne qui va l'utiliser, travailler avec un objet est donc beaucoup
plus simple qu'avant : il suffit d’appeler les fonctions sur celui-ci..

10
Concepts de la Programmation Orienté Objet

 Objet
 Le concept d’objet est utilisé pour modéliser informatiquement des "objets"
concrets de la vie courante (véhicule, personne, etc.) ou des objets
conceptuels (date, quantité, etc.).

Exemple: Gestion de location de véhicule

Renault Ali Ben Salah


Noir 5 jours Directeur
120 d Amal Mhiri
Audi Mohamed Tounssi Locataire
Bleu Agent
Mounir Gharbi

 Un objet se caractérise par une identité (adresse en mémoire), des états


(valeurs de ses attributs) et un comportement (ses méthodes).

11
Concepts de la Programmation Orienté Objet

 Classe
 Une classe est la description d’une famille d’objets ayant une même
structure et un même comportement
 Les objets d’une classe ont des valeurs différentes.
Exemple: Gestion de location de véhicule

Renault Ali Ben Salah


Noir 5 jours Directeur
120 d Amal Mhiri
Audi Mohamed Tounssi Locataire
Bleu Agent
Mounir Gharbi

Classe Véhicule Classe Contrat Classe Employé Classe Client


- marque, couleur - durée, prix - nom, prénom, statut - nom, prénom

12
Concepts de la Programmation Orienté Objet

 Classe
 Une classe est composée de plusieurs membres dont chacun est soit:
 un attribut : variable typée
 Une méthode : ensemble d’instruction de traitement

Classe Véhicule
marque
Attributs couleur
vitesse

Méthodes accelerer() : vitesse + 10


décélérer() : vitesse - 10

13
Python – Classe et attributs

 Les classes en Python


Pour créer une classe en Python,on utilise l’instruction :

On crée ensuite une méthode qui permet de construire les objets, appelé
constructeur via l’instruction :

 Il s’agit d’une méthode spéciale dont le nom est entouré de doubles


underscores, en effet:
Elle sert au fonctionnement interne de notre classe,
C’est l’emplacement idéale pour initialiser les attributs de l’instance
Elle n’est pas supposée être lancée comme une fonction classique
par l’utilisateur de la classe.
Ce constructeur est exécuté à chaque instanciation de notre classe,
et ne renvoie pas de valeur, il ne possède donc pas de return.
14
Python – Classe et attributs d’instance

Les attributs d’une classe doivent être initialisés dans le constructeur

La valeur doit être passée en paramètre du constructeur.

 Les initialiser dans la méthode __init__()


Syntaxe : self. attribut = valeur

 On peut accéder aux attributs d’instance :


 de l’extérieur par [Link]

 de l’intérieur par [Link] ou par [Link].

15
Python – Classe et attributs d’instance

La classe rectangle possède deux attributs : Longueur et largeur.

Exemple : classe Rectangle

 C e qui s’affiche à l’exécution :


 La longueur d e m o n r e c t a n g l e est 7
 La largeur d e m o n r e c t a n g l e est 5

16
Python – Méthodes

Les méthodes
 On peut aussi améliorer la classe en ajoutant des méthodes permettant
d’effectuer différentes tâches.

 Une méthode est une fonction ou procédure nommée au sein de la classe:


 permettant de définir des propriétés
 permettant de définir des comportements des objets d’instances.

Syntaxe :

def NomMethode(self) :
Instructions ……..

17
Python – Méthodes

Exemple: Ajout de méthode qui calcule la surface du rectangle

 C e qui s’affiche après exécution : La surface est : 35

18
Python – Méthodes

Les méthodes
 On veut ajouter une méthode Périmètre à la classe Rectangle.

19
Python – Attributs de classe

Définition :
Un attribut de classe est un attribut qui sera identique pour chaque instance.

5 Couleur = ’’Jaune’’

NB: Il suffit de créer une variable à l’intérieur de la classe et en dehors de toute


méthode.
 De l’extérieur ou à l’intérieur d’une classe, un attribut de classe peut se
retrouver avec une syntaxe : [Link] ou [Link]
R1=Rectangle(4,2) // Affichage
R2=Rectangle (8,6) Jaune
Print([Link]) Jaune
Print([Link])

20
Python – Attributs de classe

NB: Même si on peut retrouver un attribut de classe avec une syntaxe


[Link], un tel attribut ne peut pas être modifié avec une syntaxe:

[Link]=nouvelle_valeur

 La seule manière de modifier un attribut de classe est d’utiliser une


syntaxe NomClasse.attribut_de_classe=nouvelle_valeur

[Link] = ’’Rouge’’

21
Encapsulation

- L’encapsulation est le fait de rendre les attributs d’une classe privée et


inaccessible en dehors de la classe
 En python l’encapsulation est juste une convention et non pas une obligation
comme est le cas pour les autres langages de POO.

 Rendre l’attribut privée


en l’entourant par deux « _ ».

 Définir les setters : méthodes


permettant de modifier les attributs.

 Définir les getters : méthodes


permettant d’accéder aux attributs

22
Property

Property permettant de transformer une méthode de la classe en attribut.

 Définir une méthode précédée par le décorateur @property

 Solliciter la méthode sur un objet en tant que attribut et non pas méthode.

 En fait grâce au décorateur @property,


le compilateur la considère comme un attribut.

23
Exercice

1. Définir une classe Personne qui possède deux attributs nom et age.
2. Définir le constructeur qui initialise les attributs de l’instance par les valeurs
passée en paramètres du constructeur.
3. Définir une méthode qui permet d’afficher les attributs

Correction
Class Personne :

def –-int-—(self, nom, age):


self.__nom=nom
self.__age=age

def returnNom(self):
return self.__nom

def returnAge(self):
return self.__age
P = Personne(‘Maram’, 20)
print(‘Le nom de la personne est :’ , [Link]())
print(‘L’age de la personne est :’ , [Link]())

24

Vous aimerez peut-être aussi