Classes Python et programmation orientée objet

Une introduction complète aux classes Python, aux objets, à l'héritage et aux concepts de POO. Créez des modèles de données robustes et faites évoluer vos applications Python.

Essayez dans l'éditeur

Aperçu

La programmation orientée objet (POO) est un paradigme de programmation puissant largement utilisé en Python pour structurer des applications volumineuses et complexes. Contrairement à la programmation procédurale, qui se concentre sur l'écriture de fonctions séquentielles, la POO s'articule autour du concept d'« objets ». Un objet est une unité autonome qui regroupe à la fois des données (appelées attributs) et des comportements (appelés méthodes).

Une « classe » en Python agit comme un plan ou un modèle pour créer des objets. Pensez à un cours comme à un plan architectural pour une maison. Le plan lui-même n’est pas une maison, mais il définit à quoi ressemblera la maison et quelles sont ses caractéristiques. Lorsque vous instanciez une classe, vous créez un « objet » ou une « instance » tangible construit à partir de ce plan. Vous pouvez créer des centaines d'instances uniques à partir d'une seule classe.

La méthode `__init__()`, souvent appelée constructeur, est au cœur des classes Python. Cette méthode spéciale est automatiquement exécutée au moment exact où un nouvel objet est créé à partir d’une classe. Il est chargé d'initialiser l'état par défaut de l'objet, en lui attachant des attributs spécifiques. Le paramètre `self` est obligatoirement transmis aux méthodes d'instance, agissant comme une référence à l'objet spécifique manipulé.

L’héritage est l’un des piliers les plus solides de la POO. L'héritage vous permet de créer une nouvelle classe (une classe enfant) qui hérite de tous les attributs et méthodes d'une classe existante (une classe parent). Cela favorise la réutilisation massive du code. Par exemple, vous pouvez avoir une classe générique « Véhicule », puis créer des classes enfants « Voiture » et « Camion » qui héritent de « Véhicule » mais ajoutent leurs propres comportements spécifiques.

Un autre concept central est l'encapsulation, l'idée de cacher l'état interne d'un objet et d'exiger que toutes les interactions se produisent via des méthodes désignées. Bien que Python n'ait pas de modificateurs d'accès stricts comme « privé » ou « protégé », il s'appuie sur des conventions de dénomination (comme préfixer une variable avec un trait de soulignement « _ ») pour signaler qu'un attribut ne doit pas être manipulé directement depuis l'extérieur de la classe.

Sortie de code et d'exécution

Définir une représentation stricte d'une instance d'objet Car et utiliser des méthodes de classe pour muter les données de l'instance locale.

class Car:
    def __init__(self, make, model):
        self.make = make
        self.model = model
        self.is_running = False

    def start(self):
        self.is_running = True
        return f"{self.make} {self.model} has started."

my_car = Car("Toyota", "Corolla")
print(my_car.make)
print(my_car.start())
Sortie terminale
Toyota
Toyota Corolla has started.

Mise en œuvre étape par étape

  • Modélisation d'entités du monde réel (utilisateurs, produits, paniers)
  • Création de moteurs de jeu et de systèmes de composants d'entité
  • Création de composants d'interface utilisateur graphique réutilisables

Foire aux questions

Que signifie « soi » ?

"self" représente l'instance de la classe. En utilisant le mot-clé "self", nous pouvons accéder aux attributs et méthodes de la classe en python.

Python prend-il en charge l’héritage multiple ?

Oui, Python permet à une classe d'hériter de plusieurs classes parents.

Sujets connexes

Ressources Python recommandées

Développez vos connaissances avec des didacticiels interactifs, des aide-mémoire et des comparaisons de codes associés.