0% ont trouvé ce document utile (0 vote)
7 vues9 pages

Introduction à la POO en Python

Python

Transféré par

pekawec516
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)
7 vues9 pages

Introduction à la POO en Python

Python

Transféré par

pekawec516
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

Résumé du Cours : Programmation Orientée

Objet (POO) en Python


Introduction
Ce résumé explique simplement et clairement les notions essentielles de la Programmation Orientée
Objet (POO)

PARTIE 1 : Comprendre la POO


1. Programmation procédurale (avant la POO)
Avant la POO, on écrivait des programmes composés de :

• Données (variables)
• Fonctions (procédures)

Problèmes :

• Difficile de réutiliser le code


• Trop compliqué quand le projet devient grand

📌 Exemple : Pour gérer un compte bancaire, on avait des fonctions séparées pour créditer, débiter… et
des variables séparées pour stocker les infos.

2. Passage à la POO
La POO est née pour résoudre ces problèmes.

En POO, on regroupe les données + les actions ensemble dans des objets.

📌 Exemple simple : Un "CompteBancaire" contient :

• des données : solde, numéro


• des méthodes : créditer(), débiter()

3. Les avantages de la POO


Modularité : le code est mieux organisé

Abstraction : on cache les détails inutiles

1
Réutilisation : on peut réutiliser des classes

Facile à maintenir : modifier une classe suffit

📌 Exemple : Quand tu envoies un SMS, l’interface est simple. Tout le travail interne est caché.

4. Historique rapide
• 1970 : premiers concepts (Simula, Smalltalk)
• 1980 : C++, Objective‑C
• 1990 : Java
• Aujourd’hui : Python, PHP, C#, etc.

PARTIE 2 : Objet & Classe


1. Qu’est‑ce qu’un objet ?
Un objet possède :

• Une identité (adresse mémoire)


• Un état (attributs)
• Un comportement (méthodes)

📌 Exemple : Une voiture → couleur, marque, vitesse, accélérer()

2. Attributs
Ce sont les informations internes d’un objet.

📌 Exemple :

[Link] = "rouge"

3. Méthodes
Ce sont les actions qu’un objet peut faire.

📌 Exemple :

[Link]()

2
4. Classe : modèle des objets
Une classe est comme un plan ou une recette. Elle définit :

• les attributs
• les méthodes

Un objet = une instance d’une classe.

📌 Exemple : Classe Voiture → définit couleur, marque, accélérer() Objets → voiture1, voiture2…

5. Constructeur
Méthode spéciale exécutée lors de la création d’un objet. En Python : __init__()

📌 Exemple :

class Voiture:
def __init__(self, marque, couleur):
[Link] = marque
[Link] = couleur

6. Destructeur
Méthode appelée lors de la destruction d’un objet. En Python : rarement utilisé car Python gère la
mémoire automatiquement.

7. Interaction entre objets


Les objets communiquent en s’envoyant des messages → appel de méthodes.

📌 Exemple : Un feu de signalisation change la vitesse d’une voiture :

[Link]()
[Link](50)

3
PARTIE 3 : Les trois grands piliers de la POO

Héritage
L’héritage permet de créer une classe fille à partir d’une classe mère.

La classe fille récupère les attributs et méthodes de la classe mère.

📌 Exemple :

• Classe Personne : nom, âge


• Classe Etudiant (hérite de Personne) : ajoute note1, note2

Types d’héritage

• Simple : 1 classe mère


• Multiple : plusieurs classes mères
• En cascade : A → B → C

Polymorphisme
Un même nom de méthode peut avoir différents comportements selon l’objet.

📌 Exemple :

[Link]()

• Pour un cercle → formule du cercle


• Pour un rectangle → formule du rectangle

Encapsulation
C’est protéger les données d’un objet.

✔ On ne peut accéder aux attributs que via des méthodes.

📌 Exemple : Attribut solde est privé → on utilise retirer() et deposer()

Visibilité

• public : accessible partout


• privé : accessible seulement dans la classe
• (Python utilise _ et __ pour simuler cela)

4
PARTIE 4 : Abstraction
L’abstraction consiste à créer des classes incomplètes, qui servent de modèles.

1. Classe abstraite
• Contient des méthodes abstraites (sans corps)
• Ne peut pas être instanciée

📌 Exemple :

Classe Forme → surface() et perimetre() sont abstraites


Rectangle, Cercle → doivent les implémenter

2. Interface
Une interface contient uniquement des méthodes abstraites.

📌 Exemple : Interface Imprimable → méthode imprimer() Classe Rectangle → doit implémenter


imprimer() Classe Document → doit implémenter imprimer()

PARTIE 5 : POO en Python


1. Création d’une classe

class Personne:
def __init__(self, nom, age):
[Link] = nom
[Link] = age

2. Méthodes d’instance

def afficher(self):
print(f"Nom: {[Link]}, Age: {[Link]}")

5
3. Héritage en Python

class Etudiant(Personne):
def __init__(self, nom, age, note1):
super().__init__(nom, age)
self.note1 = note1

4. Encapsulation en Python

class Compte:
def __init__(self, solde):
self.__solde = solde # privé

def deposer(self, montant):


self.__solde += montant

5. Méthodes et classes abstraites en Python

from abc import ABC, abstractmethod

class Forme(ABC):
@abstractmethod
def surface(self):
pass

PARTIE 6 : Exercices et Pratique en Python


🔹 Exercice 1 : Créer une classe simple
Objectif : comprendre attributs + méthodes

Créer une classe Livre avec :

• attributs : titre, auteur, pages


• méthode afficher()

📌 Exemple attendu :

class Livre:
def __init__(self, titre, auteur, pages):

6
[Link] = titre
[Link] = auteur
[Link] = pages

def afficher(self):
print(f"{[Link]} - {[Link]} ({[Link]} pages)")

l = Livre("Python 101", "Alice", 220)


[Link]()

🔹 Exercice 2 : Constructeur et interaction


Créer deux classes :

• CompteBancaire (solde, deposer(), retirer())


• Client (nom, compte)

📌 Interaction :

compte = CompteBancaire(1000)
client = Client("Soufian", compte)
[Link](200)

🔹 Exercice 3 : Héritage simple


Créer :

• Classe Personne (nom, age)


• Classe Etudiant (hérite de Personne + note)

📌 Exemple :

class Personne:
def __init__(self, nom, age):
[Link] = nom
[Link] = age

def afficher(self):
print([Link], [Link])

class Etudiant(Personne):
def __init__(self, nom, age, note):
super().__init__(nom, age)
[Link] = note

7
def afficher(self): # redéfinition
super().afficher()
print("Note:", [Link])

🔹 Exercice 4 : Polymorphisme
Créer une classe Forme avec méthode surface() puis :

• Rectangle
• Cercle

📌 Exemple :

shapes = [Rectangle(3,4), Cercle(5)]


for s in shapes:
print([Link]()) # polymorphisme

🔹 Exercice 5 : Encapsulation
Créer une classe Compte avec solde privé __solde .

📌 Exemple :

class Compte:
def __init__(self, solde):
self.__solde = solde

def solde(self): # getter


return self.__solde

🔹 Exercice 6 : Abstraction (niveau avancé)


Créer une classe abstraite Forme + sous‑classes concrètes.

Conclusion
La POO est une manière puissante et moderne d’organiser le code. Elle repose sur :

• Objet & Classe


• Héritage

8
• Polymorphisme
• Encapsulation
• Abstraction

© Copyright Soufian

Vous aimerez peut-être aussi