0% ont trouvé ce document utile (0 vote)
52 vues20 pages

Python et POO : Guide pour Débutants

Le document décrit les concepts d'encapsulation et de visibilité en programmation orientée objet avec Python. Il explique comment encapsuler des attributs et méthodes au sein d'une classe pour contrôler leur accès, et utiliser des attributs et méthodes publics et privés. Le document fournit également des exemples de classes illustrant ces concepts.

Transféré par

mouchgado
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)
52 vues20 pages

Python et POO : Guide pour Débutants

Le document décrit les concepts d'encapsulation et de visibilité en programmation orientée objet avec Python. Il explique comment encapsuler des attributs et méthodes au sein d'une classe pour contrôler leur accès, et utiliser des attributs et méthodes publics et privés. Le document fournit également des exemples de classes illustrant ces concepts.

Transféré par

mouchgado
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

Introduction à la

programmation avec
Python
IG1-ENEAM 2024
Encapsulation :Définition
L’un des intérêts de la POO est de sécuriser les variables dans un contexte isolé pour éviter qu’elles
soient accédées à tort et à travers par différents programmeurs ce qui a tendance à créer des bugs
mythiques.

Pour éviter cela on essaye au maximum d’encapsuler les attributs et les méthodes internes qui
servent à faire fonctionner une classe pour éviter que les utilisateurs de la classe (ignorants son
fonctionnement) puissent pas les appeler directement et “casser” le fonctionnement de la classe.

L'encapsulation est l'un des principes fondamentaux de la programmation orientée objet (POO). Il
s'agit de la capacité de cacher les détails d'implémentation d'un objet à l'extérieur de sa définition.

L'encapsulation consiste à masquer des données de l'état interne pour protéger l'intégrité de l'objet.
Contrôle d’accès, visibilité

En Python, les attributs et méthodes d'un objet peuvent être accessibles publiquement ou privément.

● Les attributs et méthodes publiques peuvent être accessibles et modifiés de l'extérieur de la classe.
● Les attributs et méthodes privés sont destinés à être utilisés uniquement à l'intérieur de la classe.

En Python, les attributs et méthodes privés sont marqués en préfixant le nom par deux traits de
soulignement (__).
Lorsqu'on parle d'attributs et de méthodes
"publiques", cela signifie qu'ils sont
accessibles à partir de l'extérieur de la classe
dans laquelle ils sont définis.

En d'autres termes, vous pouvez accéder à


ces attributs et méthodes et les utiliser dans
d'autres parties de votre programme, même si
vous n'êtes pas à l'intérieur de la définition de
la classe elle-même.

Dans cet exemple, les attributs marque et


couleur ainsi que les méthodes demarrer() et
arreter() sont définis comme publics. Cela
signifie que nous pouvons les utiliser à
l'extérieur de la classe Voiture . Par exemple,
nous accédons à l'attribut marque en utilisant
ma_voiture.marque et nous utilisons la
méthode demarrer() en appelant
ma_voiture.demarrer() .
Lorsqu'on dit que les attributs et méthodes sont "privés", cela signifie qu'ils ne devraient être utilisés
que à l'intérieur de la classe où ils sont définis. En Python, les attributs et méthodes privés sont
marqués en préfixant leur nom par deux traits de soulignement ( __).
Dans cet exemple, les attributs __marque et __couleur, ainsi que les méthodes __demarrer() et
__arreter(), sont définis comme privés. Cela signifie que nous ne pouvons pas y accéder directement
depuis l'extérieur de la classe Voiture. Si nous essayons d'accéder à ces attributs ou méthodes depuis
l'extérieur de la classe, cela provoquera une erreur.

Cependant, à l'intérieur de la classe Voiture, nous pouvons toujours utiliser ces attributs et méthodes privés
comme d'habitude. Par exemple, la méthode publique conduire() utilise les méthodes privées
__demarrer() et __arreter() pour effectuer des actions spécifiques lors de la conduite de la voiture.
En résumé, les attributs et méthodes publics sont accessibles de l'extérieur de la classe et peuvent être
utilisés comme n'importe quelle autre variable ou fonction dans votre programme.

En résumé, les attributs et méthodes privés sont destinés à être utilisés uniquement à l'intérieur de la classe
où ils sont définis, ce qui permet de restreindre leur accès et de mieux contrôler l'encapsulation des données
et du comportement de la classe.

Pour réduire les risques et simplifier l’utilisation d’une classe, nous nous fixons la règle de tout rendre privé
par défaut et de ne rendre visible que ce qui doit nécessairement l’être.
Encapsulation avec des méthodes getter et
setter
Les méthodes getter et setter permettent de contrôler l'accès aux attributs d'un objet.

● Les méthodes getter sont utilisées pour récupérer la valeur d'un attribut.
● Les méthodes setter sont utilisées pour définir la valeur d'un attribut.

Pour permettre le maintient des invariants qui portent sur les attributs, nous utiliserons des accesseurs et
des mutateurs.
Ainsi pour rendre un attribut public, nous le doterons d’accesseur et mutateur publics,
mais nous le coderons quand même comme un attribut privé.
Avantages de l'encapsulation

L'encapsulation offre plusieurs avantages :

● Contrôle de l'accès aux attributs : Vous pouvez définir des règles pour la lecture et l'écriture des
attributs.
● Réutilisabilité du code : En utilisant des méthodes getter et setter, vous pouvez modifier
l'implémentation interne de la classe sans modifier le code externe qui l'utilise.
● Sécurité des données : Vous pouvez restreindre l'accès à certains attributs sensibles en les rendant
privés.
EXERCICE 1

1- Définir une classe Vehicle avec les attributs privés suivants : type, brand, color et price

2- Créer un constructeur qui accepte les 4 paramètres

3- Créer les accesseurs

4- Créer une méthode show permettant d’afficher les caractéristiques d’un véhicule

5- Instancier deux véhicules de votre choix et afficher leurs caractéristiques


Exercice 2

Définissez une classe Domino qui permet d’instancier des objets simulant les pièces d’un jeu de dominos. 1.
Le constructeur de cette classe initialisera les valeurs des points présents sur les deux faces A et B du
domino (valeurs par défaut = 0).

2. Deux autres méthodes seront définies :

● une méthode show_points() qui affiche les points présents sur les deux faces
● une méthode value() qui renvoie la somme des points présents sur les 2 faces.
Exemple d'utilisation de cette classe
Exercice 3

Définissez une classe BankAccount, qui permette d’instancier des objets tels que account_1,``account_2``, etc...

1. L’initialisateur de cette classe déclarera deux attributs name et balance, avec les valeurs par défaut 'Dupont' et
1000.

2. Trois autres méthodes seront définies :

● ``deposit(amount)` permettra d’ajouter une certaine somme au solde


● withdraw(amount) permettra de retirer une certaine somme du solde
● show() permettra d’afficher le nom du titulaire et le solde de son compte.
Exemple d'utilisation de cette classe

Vous aimerez peut-être aussi