Dans les langages orientés objet comme Python, une classe est un modèle réutilisable qui définit la structure et les comportements des objets. Un objet est une instance concrète de cette classe.
En Python, tout est objet : chaque donnée est une instance d'une classe. Si vous débutez, découvrez notre guide pour débutants sur Python.
Une classe regroupe des méthodes (comportements partagés) et des attributs (état des instances).
Lire la suite : Méthodes de classe en Python : les différences importantes
Voici un exemple de classe Voiture modélisant une voiture de course. Elle gère le nom, le pilote, la plaque, la vitesse actuelle, l'amende pour excès de vitesse et la couleur.
Cette classe intègre un capteur virtuel appliquant une amende de 50 $ si la vitesse dépasse 140 mph.
class Voiture:
# Constructeur : initialise les attributs d'instance
def __init__(self, nom_voiture, nom_pilote, numero_plaque, vitesse_actuelle, amende_vitesse, couleur):
self._nom_voiture = nom_voiture
self._nom_pilote = nom_pilote
self._numero_plaque = numero_plaque
self._vitesse_actuelle = vitesse_actuelle
self._amende_vitesse = amende_vitesse
self._couleur = couleur
# Méthodes d'accès (getters)
def get_nom_voiture(self):
return self._nom_voiture
def get_nom_pilote(self):
return self._nom_pilote
def get_numero_plaque(self):
return self._numero_plaque
def get_vitesse_actuelle(self):
return self._vitesse_actuelle
def get_amende_vitesse(self):
return self._amende_vitesse
def get_couleur(self):
return self._couleur
# Méthodes mutatrices
def set_pilote(self, nouveau_pilote):
self._nom_pilote = nouveau_pilote
def ticket_exces_vitesse(self, vitesse_courante):
if vitesse_courante > 140:
self._amende_vitesse += 50
return True
return False
def payer_amende(self, montant_paye):
self._amende_vitesse -= montant_paye
Les méthodes de classe incluent self en premier paramètre, mais lors de l'appel sur une instance, Python le passe automatiquement. Exemple : voiture.get_couleur() n'exige aucun argument explicite.
Le constructeur __init__ initialise l'objet :
# Créez votre Bugatti
ma_voiture = Voiture("Bugatti", "David Sasu", 90828, 0, 0, "Rouge Cerise")
Attributs privés (préfixés par _) :
Pour lire les attributs :
Pour modifier l'état :
L'encapsulation masque les détails internes. Consultez notre article sur l'encapsulation.
Cette implémentation est basique. Pour plus de robustesse, vérifiez les types (avec isinstance) et les valeurs dans __init__ et les méthodes, afin d'éviter les erreurs comme passer une chaîne à ticket_exces_vitesse.
Ce tutoriel couvre les classes Python : self, constructeurs, getters/setters et encapsulation. Créez et testez votre propre classe dès maintenant !