FRFAM.COM >> Famille >> Technologie &Innovation >> Informatique

Comment créer une classe simple en Python : Tutoriel complet avec exemple

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.

Principes de base des classes Python

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.

Exemple de classe Voiture

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

Explication de l'exemple de classe Python

Le paramètre self

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

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 _) :

  • _nom_voiture
  • _nom_pilote
  • _numero_plaque
  • _vitesse_actuelle
  • _amende_vitesse
  • _couleur

Méthodes d'accès

Pour lire les attributs :

  • get_nom_voiture
  • get_nom_pilote
  • get_numero_plaque
  • get_vitesse_actuelle
  • get_amende_vitesse
  • get_couleur

Méthodes mutatrices

Pour modifier l'état :

  • set_pilote
  • ticket_exces_vitesse
  • payer_amende

Le concept d'encapsulation

L'encapsulation masque les détails internes. Consultez notre article sur l'encapsulation.

Vérification des erreurs

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.

Vous maîtrisez les bases des classes Python

Ce tutoriel couvre les classes Python : self, constructeurs, getters/setters et encapsulation. Créez et testez votre propre classe dès maintenant !

[]