Comment créer une classe en Python ?

Published: 29 mars 2021

Updated: 04 décembre 2024

Tags: Python;

DMCA.com Protection Status

Introduction

Un tutoriel rapide sur la création et l'utilisation des classes en Python

Créer une classe simple en Python

Une classe en Python sert de plan pour créer des objets. Pour définir une classe simple, utilisez le mot-clé class.

1
2
class Membre: 
    s = 'Bonjour tout le monde !'

Ici, Membre est une classe avec une seule propriété s.

Créer une instance

Pour créer une instance (objet) de la classe Membre :

1
membre_01 = Membre()

Accéder aux propriétés

Vous pouvez accéder à la propriété s comme ceci :

1
print(membre_01.s)

Sortie :

1
Bonjour tout le monde !

Créer une classe vide

Pour créer une classe sans propriétés ni méthodes, vous pouvez utiliser le mot-clé pass :

1
2
class Membre: 
    pass

Utiliser la méthode __init__() pour initialiser des propriétés

La méthode __init__() est un constructeur qui permet d’initialiser les propriétés d’un objet lors de sa création. Voici comment faire :

1
2
3
4
5
class Membre:
    def __init__(self, prenom, nom, age):
        self.prenom = prenom
        self.nom = nom
        self.age = age

Créer et accéder aux objets

Maintenant, lorsque vous créez un objet, vous devez fournir les paramètres requis :

1
2
3
4
5
membre_01 = Membre("Jean", "Dupont", 24)

print(membre_01.prenom)  # Sortie : Jean
print(membre_01.nom)     # Sortie : Dupont
print(membre_01.age)     # Sortie : 24

Vous pouvez créer plusieurs objets avec différentes propriétés :

1
2
3
4
5
membre_02 = Membre("Emma", "Watson", 30)

print(membre_02.prenom)  # Sortie : Emma
print(membre_02.nom)     # Sortie : Watson
print(membre_02.age)     # Sortie : 30

Ajouter des paramètres optionnels avec *args

Le mot-clé *args vous permet de passer un nombre variable d'arguments à une méthode.

Exemple :

1
2
3
4
5
6
7
8
class Membre:
    def __init__(self, prenom, nom, age, *args):
        self.prenom = prenom
        self.nom = nom
        self.age = age

        if 'Homme' in args:
            self.genre = 'Homme'

Utilisation :

1
2
3
membre_01 = Membre("Jean", "Dupont", 24, 'Homme', 'Blanc')

print(membre_01.genre)  # Sortie : Homme

Ajouter des paramètres optionnels avec **kwargs

Le mot-clé **kwargs permet de passer des arguments nommés qui peuvent être traités comme un dictionnaire.

Exemple :

1
2
3
4
5
6
class Membre:
    def __init__(self, prenom, nom, age, **kwargs):
        self.prenom = prenom
        self.nom = nom
        self.age = age
        self.taille = kwargs.get('taille', None)  # Paramètre optionnel

Utilisation :

1
2
3
membre_01 = Membre("Jean", "Dupont", 24, taille=1.75, couleur_yeux='vert')

print(membre_01.taille)  # Sortie : 1.75

Définir des méthodes d'objet

Vous pouvez définir des méthodes dans une classe pour effectuer des opérations utilisant les données de l'objet.

Exemple :

1
2
3
4
5
6
7
8
class Membre:
    def __init__(self, prenom, nom, age):
        self.prenom = prenom
        self.nom = nom
        self.age = age

    def nom_complet(self):
        return f"Nom complet : {self.prenom} {self.nom}"

Utilisation :

1
2
membre_01 = Membre("Jean", "Dupont", 24)
print(membre_01.nom_complet())  # Sortie : Nom complet : Jean Dupont

Supprimer un objet

Pour supprimer un objet, utilisez le mot-clé del :

1
del membre_01

Après suppression, essayer d'accéder à membre_01 lèvera une erreur NameError.

Créer des classes enfants (Héritage)

Hériter d'une classe parente

Une classe enfant hérite de toutes les propriétés et méthodes de la classe parente.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
class Membre:
    def __init__(self, prenom, nom, age):
        self.prenom = prenom
        self.nom = nom
        self.age = age

    def nom_complet(self):
        return f"Nom complet : {self.prenom} {self.nom}"

class MembrePremium(Membre):
    pass

Utilisation :

1
2
mp1 = MembrePremium("Jean", "Dupont", 24)
print(mp1.nom_complet())  # Sortie : Nom complet : Jean Dupont

Redéfinir le constructeur

Si une classe enfant définit sa propre méthode __init__(), vous devez explicitement appeler le constructeur de la classe parente :

1
2
3
4
5
6
class MembrePremium(Membre):
    def __init__(self, prenom, nom, age):
        super().__init__(prenom, nom, age)

    def code_promo(self):
        return 1234

Utilisation :

1
2
mp1 = MembrePremium("Jean", "Dupont", 24)
print(mp1.code_promo())  # Sortie : 1234

Références