Les classes en Python
Comment fonctionnent les classes en Python ? C’est quoi la programmation orientée objet ? Comment faire ses classes ? Pourquoi préférer cette structure ?
Une classe permet définir la structure et le comportement d’objets. Elle regroupe des attributs (variables) et des méthodes (fonctions) pour créer des instances de cet objet. Les classes rendent le code réutilisable et permet de représenter des objets réels avec la programmation orientée objet.
Explication video YouTube du concept de classe :
La programmation orientée objet (POO) peut sembler complexe au premier abord, mais elle offre une approche puissante et modulaire pour structurer le code.
Dans cet article, on voit les bases des classes en Python, en mettant l’accent sur la création d’objets et d’instances.
C’est quoi une classe en Python ?
Les classes en Python regroupent des données et des fonctions dans une structure facile à réutiliser, agissant comme un moule ou un modèle pour créer des versions spécifiques d’un objet. En programmation, le terme “objet” est souvent utilisé en référence à une classe.
La Programmation Orientée Objet (POO)
La POO repose sur le concept de classes, qui jouent un rôle central dans la structuration du code. L’utilisation de classes dans votre code est essentielle pour adopter pleinement la programmation orientée objet.
Si vous avez utilisé des .
sur des objets comme les strings avec des méthodes comme .append
ou .remove
par exemple, vous vous êtes déjà servi la POs.
Création de Votre Propre Classe
Imaginons qu’on veuille créer un modèle pour fabriquer des voitures Cybertrucks de Tesla. Pour ca, on va créer une classe nommée “Cybertruck” selon la convention de nommage PascalCase.
Le PascalCase est une manière d’écrire des noms de variable. On va écrire la premiere lettre de chaque mot en Majuscule et coller tous les mots. Par exemple : MaVoiture, MaSuperClasse, CommentCoderCom. Vous pouvez en apprendre plus sur les conventions de nommage avec mon article sur le sujet.
class Cybertruck:
marque = "Tesla"
modele = "Cybertruck"
annee = 2023
Comment ajouter des fonctionnalités a nos classes grace aux Méthodes
Pour rendre notre Cybertruck plus interactif, nous ajoutons la capacité de klaxonner en créant une méthode de classe appelée klaxonner
.
def klaxonner(self):
print("tut tut")
Maintenant, en utilisant notre instance de Cybertruck, nous pouvons déclencher le klaxon avec la syntaxe cybertruck.klaxonner
.
Comment modifier des attributs dynamiquement ?
La flexibilité des classes permet de modifier dynamiquement les attributs après l’instanciation.
Par exemple, changer l’année de fabrication d’un Cybertruck de 2023 à 2024 se fait simplement en utilisant cybertruck.annee = 2024
.
Utilisation d’un Constructeur pour la Modularité
Pour créer différents types de voitures de manière modulaire, on utilise un constructeur. Donc changeons notre classe de “Cybertruck” à “Voiture” et on va ajouter un constructeur (__init__
) pour initialiser les attributs de manière flexible.
class Voiture:
def __init__(self, marque, modele, annee):
self.marque = marque
self.modele = modele
self.annee = annee
Comment créer des instances de classes avec des paramètres personnalisés ?
Désormais, nous pouvons créer des instances de la classe “Voiture” avec des paramètres personnalisés, offrant ainsi une approche plus générique pour créer différents types de voitures.
cybertruck = Voiture(marque="Tesla", modele="Cybertruck", annee=2023)
corolla = Voiture(marque="Toyota", modele="Corolla", annee=2022)
Aller plus loin la programmation orientée objet !
En comprenant les bases des classes en Python, vous êtes mieux équipé pour explorer d’autres concepts de la programmation orientée objet.
Les classes offrent une manière structurée et puissante d’organiser votre code, facilitant la réutilisation et la modularité.
N’hésitez pas à aller plus loin dans la POO avec Python !
Je m'appelle Thomas, et je code depuis plus de 20 ans. Depuis ma sortie de la première promotion de l'École 42, j'ai conçu et développé des centaines d'applications et de sites web. Sur ce blog, je partage avec vous les stratégies les plus efficaces pour maîtriser l'art de coder et progresser rapidement.