Keep your place in this quest

Log in or sign up for free to subscribe, follow lesson progress, and access more learning content.

Introduction à la Programmation Orientée Objet en Python

La Programmation Orientée Objet (POO) est un paradigme de programmation qui vous permet de représenter des concepts du monde réel sous forme de objets — des entités qui possèdent des caractéristiques spécifiques (données) et des comportements (actions).

Considérez un objet comme une entité autonome dans votre programme regroupant données et actions en un seul endroit — comme un smartphone que vous possédez : il a des données (marque, modèle, niveau de batterie) et peut réaliser des actions (prendre une photo, passer un appel, jouer de la musique). En code, ces données vivent dans des attributs (par exemple, battery_level), et les actions sont des méthodes (par exemple, take_photo()); ensemble, ils forment une unité cohérente que vous pouvez créer, configurer et utiliser.

La classe est le plan (la conception du téléphone), et un objet est une instance réelle, individuelle construite à partir de ce plan (votre téléphone spécifique avec sa batterie actuelle et ses photos). Chaque objet garde son propre état, ainsi deux objets de la même classe peuvent avoir des valeurs différentes en même temps, et ils interagissent en appelant les méthodes des uns et des autres plutôt qu'en manipulant directement les données internes — cette idée s'appelle encapsulation, elle vous aide à organiser le code, réduire les bugs, et comprendre le comportement.

Quand vous créez un objet, Python exécute généralement init pour définir son état de départ ; ensuite, vous demandez à l'objet d'agir en appelant ses méthodes, qui peuvent lire ou modifier ses attributs selon les besoins. Si vous avez créé un jeu, imaginez un Player avec santé et position pouvant move() et jump(); dans une application web, un User avec un nom et un password_hash pouvant authenticate() et update_profile().

Un objet, c’est tout simplement : données + comportement, réunis, créés à partir d'une classe et prêts à être utilisés.

En Python, tout est un objet.
Cela signifie que le code est écrit autour des objets et de leurs interactions, faisant de la POO une partie fondamentale de Python et une caractéristique majeure de bibliothèques et frameworks populaires comme Django, Flask, et même de nombreux moteurs de jeu.

Dans cette leçon, nous allons explorer les concepts de base de la POO en Python et apprendre à les utiliser pour créer nos propres objets.


Classes et Objets

La POO en Python repose sur les classes et les objets :

  • Une classe est un plan ou une définition pour un type d’objet. Elle décrit quelles propriétés (appelées attributs) et quels comportements (appelés méthodes) ce type d’objet aura.
  • Un objet est une instance d’une classe — c’est une version réelle du plan, avec des données réelles stockées dans ses attributs.

1.1. Créer une Classe

Pour créer une classe en Python, utilisez le mot-clé class, suivi du nom de la classe et d’un deux-points.

Exemple :

class Person:
    pass

Ici, nous avons créé une classe appelée Person. L’instruction pass est un espace réservé — elle indique à Python « ne rien faire ici » jusqu’à ce que nous ajoutions du code effectif plus tard.

ASTUCE : Par convention, les noms de classes utilisent la casse PascalCase (chaque mot commence par une majuscule).

Attributs et Méthodes

Une classe peut avoir :

  • Attributs — des variables qui contiennent des informations sur l’objet.
  • Méthodes — des fonctions qui définissent les actions que l’objet peut réaliser.

2.1. Ajouter des Attributs

Pour définir des attributs lors de la création d’un objet, on les déclare dans une méthode spéciale appelée __init__ (prononcé « dunder init » — pour double underscore init).

__init__ s’exécute automatiquement à chaque fois que vous créez un nouvel objet à partir de la classe. Elle sert à initialiser les attributs de l’objet avec des valeurs de départ.

Exemple :

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

Voici ce qui se passe ici :

  • Le premier paramètre, self, est une référence à l’objet spécifique en création.
  • Les autres paramètres (name, age) sont les valeurs passées lors de la création de l’objet.
  • self.name et self.age sont des attributs d’instance qui stockent les données à l’intérieur de l’objet.

IMPORTANT : self doit toujours être le premier paramètre des méthodes d’instance — il vous permet d’accéder aux attributs et méthodes propres à l’objet.

2.2. Ajouter des Méthodes

Les méthodes sont des fonctions appartenant à une classe. Elles réalisent généralement des actions utilisant ou modifiant les attributs de l’objet.

Exemple :

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def greet(self):
        print(f"Hello, my name is {self.name} and I am {self.age} years old.")

Ici :

  • Nous avons ajouté une méthode appelée greet.
  • Elle utilise les attributs propres à l’objet (self.name et self.age) pour afficher un message personnalisé.

Créer et Utiliser des Objets

Une fois que vous avez défini une classe, vous pouvez créer des objets à partir de celle-ci en l’appelant comme une fonction, mais avec le nom de la classe.

Exemple :

person1 = Person("Alice", 30)
person1.greet()

Résultat :

Hello, my name is Alice and I am 30 years old.

Conclusion

Dans cette leçon, vous avez appris :

  • La différence entre classes et objets.
  • Comment utiliser __init__ pour définir des attributs lors de la création d’objets.
  • Comment définir des méthodes qui permettent aux objets d’effectuer des actions.

C’est la base de la POO en Python. À la suite, nous approfondirons cela en explorant l’héritage — une façon de créer de nouvelles classes qui s’appuient sur des classes existantes.