0% ont trouvé ce document utile (0 vote)
3 vues6 pages

Cours Poo Python Complet

Ce document est un cours complet sur la Programmation Orientée Objet (POO) en Python, couvrant des concepts fondamentaux tels que les classes, objets, héritage, et polymorphisme, ainsi que des concepts avancés comme les classes abstraites et les design patterns. Il inclut également un mini-projet pratique pour la gestion d'une boutique, illustrant l'application des concepts abordés. À la fin, des options pour des ressources supplémentaires sont proposées.

Transféré par

assongmovarel
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 DOCX, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
3 vues6 pages

Cours Poo Python Complet

Ce document est un cours complet sur la Programmation Orientée Objet (POO) en Python, couvrant des concepts fondamentaux tels que les classes, objets, héritage, et polymorphisme, ainsi que des concepts avancés comme les classes abstraites et les design patterns. Il inclut également un mini-projet pratique pour la gestion d'une boutique, illustrant l'application des concepts abordés. À la fin, des options pour des ressources supplémentaires sont proposées.

Transféré par

assongmovarel
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 DOCX, PDF, TXT ou lisez en ligne sur Scribd

Cours Complet de Programmation Orientée

Objet (POO) en Python


Avec exemples pratiques et mini-projet complet

🔷 1. Introduction à la POO en Python


La Programmation Orientée Objet (POO) est un paradigme qui permet
d’organiser le code sous forme d’objets regroupant : - des données
(attributs) - des comportements (méthodes)
Python est un langage entièrement orienté objet : tout est objet.

🔷 2. Concepts Fondamentaux
2.1 Classe et Objet
Une classe est un modèle d’objet. Un objet est une instance de cette
classe.

Exemple :
class Voiture:
pass

v = Voiture() # création d'un objet

2.2 Attributs et Méthodes


class Compte:
def __init__(self):
[Link] = 0

def deposer(self, montant):


[Link] += montant

def afficher_solde(self):
return [Link]
2.3 Le constructeur : __init__
class User:
def __init__(self, nom):
[Link] = nom

u = User("Alice")
print([Link])

2.4 Encapsulation (public / protected / private)


Python n’impose pas strictement la visibilité mais utilise des conventions : -
variable → public - _variable → protégé (interne) - __variable → privé

class Test:
def __init__(self):
[Link] = 1
self._protegee = 2
self.__privee = 3

2.5 Propriétés (getters/setters modernes)


class Produit:
def __init__(self, prix):
self._prix = prix

@property
def prix(self):
return self._prix

@[Link]
def prix(self, value):
if value >= 0:
self._prix = value

2.6 Héritage
class Animal:
def parler(self):
return "Je suis un animal"

class Chien(Animal):
def parler(self):
return "Wouf !"
2.7 Polymorphisme
def presenter(animal: Animal):
print([Link]())

2.8 Attributs et méthodes statiques


class Maths:
@staticmethod
def carre(x):
return x * x

🔷 3. Concepts Avancés
3.1 Classes abstraites avec abc
from abc import ABC, abstractmethod

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

class Cercle(Forme):
def __init__(self, r):
self.r = r
def aire(self):
import math
return [Link] * self.r ** 2

3.2 Interfaces (au sens Python)


Python n’a pas d’interfaces strictes mais les classes abstraites permettent le
même effet.

3.3 Méthodes magiques (__str__, __len__, __repr__, etc.)


class Livre:
def __init__(self, titre, pages):
[Link] = titre
[Link] = pages

def __str__(self):
return f"Livre: {[Link]}"
def __len__(self):
return [Link]

3.4 Les dataclasses (Python moderne)


from dataclasses import dataclass

@dataclass
class Produit:
id: int
nom: str
prix: float

3.5 Héritage multiple


class A:
pass
class B:
pass
class C(A, B):
pass

3.6 Design Patterns (Python)


Singleton
class Singleton:
_instance = None

def __new__(cls):
if cls._instance is None:
cls._instance = super().__new__(cls)
return cls._instance

Factory
class UserFactory:
@staticmethod
def create(nom):
return User(nom)

Strategy
class TriStrategy:
def trier(self, data): pass
class TriAsc(TriStrategy):
def trier(self, data): return sorted(data)

class ContexteTri:
def __init__(self, strategie):
[Link] = strategie

def executer(self, data):


return [Link](data)

🔷 4. Mini-Projet Complet : Gestion d’une


Boutique en Python (POO)
🎯 Objectif
Créer une petite application orientée objet permettant : - de gérer des
produits - de gérer un panier - de passer une commande

📁 Structure du projet
boutique/
[Link]
[Link]
[Link]
[Link]

4.1 [Link]
class Produit:
def __init__(self, id, nom, prix):
[Link] = id
[Link] = nom
[Link] = prix

def __str__(self):
return f"{[Link]} ({[Link]}€)"

4.2 [Link]
class Panier:
def __init__(self):
[Link] = {}

def ajouter(self, produit):


[Link][[Link]] = produit

def total(self):
return sum([Link] for p in [Link]())

4.3 [Link]
class Commande:
def __init__(self, panier):
[Link] = panier

def valider(self):
print(f"Commande validée. Total : {[Link]()}€")

4.4 [Link]
from produit import Produit
from panier import Panier
from commande import Commande

p1 = Produit(1, "Chaussures", 50)


p2 = Produit(2, "T-shirt", 20)

panier = Panier()
[Link](p1)
[Link](p2)

commande = Commande(panier)
[Link]()

🔷 5. Conclusion
Vous disposez maintenant : - d’un cours détaillé - d’exemples pratiques -
d’un mini-projet Python orienté objet complet
Souhaites-tu : - un diagramme UML du mini-projet ? - une version PDF ? - une
version encore plus avancée (design patterns complets, architecture MVC,
API) ?

Vous aimerez peut-être aussi