🐍 Cours de programmation Python 💻

🛄 Création et manipulation d'objets

La programmation orientée objet (POO) en Python permet de créer des structures appelées objets qui regroupent des données et des fonctions associées. Les objets sont définis à partir de classes, qui servent de "modèle" ou "plan" pour créer des instances.


Définir une classe

Une classe est définie avec le mot-clé class. Elle peut contenir :


class Animal:
    def __init__(self, nom, age):
        self.nom = nom   # attribut nom
        self.age = age   # attribut âge

    def se_presenter(self):
        return f"Je suis {self.nom} et j'ai {self.age} ans."

Explications :


Créer une instance d'une classe


# Création d'un objet à partir de la classe Animal
chien = Animal("Rex", 5)
chat = Animal("Miaou", 3)

# Appel d'une méthode
print(chien.se_presenter())  # Je suis Rex et j'ai 5 ans.
print(chat.se_presenter())   # Je suis Miaou et j'ai 3 ans.

Chaque instance possède ses propres attributs, même si elles viennent de la même classe.


Modifier les attributs d'une instance


chien.age = 6
print(chien.se_presenter())  # Je suis Rex et j'ai 6 ans.

# Ajouter un nouvel attribut dynamique
chat.couleur = "blanc"
print(chat.couleur)           # blanc

Méthodes avec paramètres

Les méthodes peuvent recevoir d'autres arguments pour modifier ou calculer des valeurs :


class CompteBancaire:
    def __init__(self, titulaire, solde=0):
        self.titulaire = titulaire
        self.solde = solde

    def deposer(self, montant):
        self.solde += montant

    def retirer(self, montant):
        if montant <= self.solde:
            self.solde -= montant
        else:
            print("Solde insuffisant")

    def afficher_solde(self):
        return f"Solde de {self.titulaire} : {self.solde} €"

# Exemple
compte = CompteBancaire("Alice", 100)
compte.deposer(50)
print(compte.afficher_solde())  # Solde de Alice : 150 €
compte.retirer(200)             # Solde insuffisant

Héritage

Une classe peut hériter d'une autre classe pour réutiliser ses attributs et méthodes :


class Chien(Animal):
    def aboyer(self):
        return f"{self.nom} dit : Ouaf !"

rex = Chien("Rex", 5)
print(rex.se_presenter())  # Héritage de la méthode de Animal
print(rex.aboyer())        # Rex dit : Ouaf !

L'héritage permet de créer des classes spécialisées tout en conservant les comportements de la classe parent.


Méthodes spéciales utiles


class Livre:
    def __init__(self, titre, pages):
        self.titre = titre
        self.pages = pages

    def __str__(self):
        return f"Livre : {self.titre}, {self.pages} pages"

livre = Livre("Python pour tous", 250)
print(livre)  # Livre : Python pour tous, 250 pages

Résumé

La POO est très puissante pour structurer vos programmes, organiser le code et faciliter sa réutilisation.