Méthodes magiques (__str__, __repr__, etc.)
Plongez dans les méthodes spéciales de Python pour personnaliser le comportement des objets.
Méthodes magiques (__str__, __repr__, etc.) est une leçon Python Academy gratuite sur CoddyKit. Ceci est la leçon 6 sur 6. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Python Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Python Academy comprend 6 leçons au total.
Introduction aux méthodes magiques
Introduction aux méthodes magiques
Les méthodes magiques, également appelées méthodes dunder (abréviation de « double soulignement »), sont des méthodes spéciales de Python qui vous permettent de définir le comportement des objets dans des situations particulières.
Dans cette leçon, vous apprendrez à utiliser des méthodes magiques courantes comme __str__, __repr__ et d'autres.

Que sont les méthodes magiques ?
Que sont les méthodes magiques ?
Les méthodes magiques sont des méthodes prédéfinies de Python qui sont appelées automatiquement lorsque des opérations particulières sont effectuées sur des objets. Elles sont reconnaissables à leurs deux traits de soulignement, comme dans __init__ ou __str__.
La méthode __init__
La méthode __init__
La méthode __init__ est un constructeur qui initialise un nouvel objet. Elle est appelée automatiquement lorsqu'un objet est créé :
# Using the __init__ method to initialize attributes
class Person:
def __init__(self, name, age):
self.name = name # Initialize the name attribute
self.age = age # Initialize the age attribute
# Creating an instance of Person
person = Person("Alice", 30)
print(person.name, person.age) # Outputs: Alice 30La méthode __str__
La méthode __str__
La méthode __str__ définit la représentation sous forme de chaîne d'un objet lorsque print() est appelée :
# Defining the __str__ method
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def __str__(self):
return f"Name: {self.name}, Age: {self.age}" # String representation
person = Person("Alice", 30)
print(person) # Outputs: Name: Alice, Age: 30La méthode __repr__
La méthode __repr__
La méthode __repr__ fournit une représentation officielle sous forme de chaîne d'un objet, souvent utilisée pour le débogage :
# Defining the __repr__ method
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def __repr__(self):
return f"Person('{self.name}', {self.age})" # Debug-friendly representation
person = Person("Alice", 30)
print(repr(person)) # Outputs: Person('Alice', 30)Surcharge des opérateurs avec les méthodes magiques
Surcharge des opérateurs avec les méthodes magiques
Vous pouvez utiliser des méthodes magiques pour personnaliser le comportement d'opérateurs comme + ou == :
# Overloading the + operator with __add__
class Point:
def __init__(self, x, y):
self.x = x
self.y = y
def __add__(self, other):
return Point(self.x + other.x, self.y + other.y) # Adding two points
def __str__(self):
return f"({self.x}, {self.y})"
point1 = Point(1, 2)
point2 = Point(3, 4)
result = point1 + point2 # Calls __add__
print(result) # Outputs: (4, 6)Méthodes magiques couramment utilisées
Méthodes magiques couramment utilisées
Voici quelques méthodes magiques couramment utilisées :
__len__: définit le comportement de la fonctionlen().__getitem__: permet l'indexation comme pour une liste ou un dictionnaire.__eq__: personnalise la comparaison d'égalité à l'aide de==.
Utiliser __len__ et __getitem__
Utiliser __len__ et __getitem__
Vous pouvez utiliser __len__ pour définir la longueur d'un objet personnalisé et __getitem__ pour le rendre indexable :
# Using __len__ and __getitem__ in a custom class
class CustomList:
def __init__(self, items):
self.items = items
def __len__(self):
return len(self.items) # Defines the behavior of len()
def __getitem__(self, index):
return self.items[index] # Enables indexing
custom_list = CustomList([1, 2, 3])
print(len(custom_list)) # Outputs: 3
print(custom_list[1]) # Outputs: 2Erreurs courantes liées aux méthodes magiques
Erreurs courantes liées aux méthodes magiques
Voici quelques erreurs à éviter :
- Définir une méthode magique sans respecter le comportement attendu.
- Surcharger des opérateurs sans nécessité.
- Oublier d'effectuer l'« implementing » des méthodes magiques requises dans les types de données personnalisés.
Qu'avons-nous appris ?
Qu'avons-nous appris ?
Dans cette leçon, vous avez appris :
- Ce que sont les méthodes magiques et pourquoi elles sont utiles.
- Comment utiliser des méthodes magiques courantes comme
__init__,__str__et__repr__. - Comment surcharger des opérateurs à l'aide de méthodes magiques.
Excellent travail ! Passons au sujet suivant.

Questions Fréquemment Posées
La leçon « Méthodes magiques (__str__, __repr__, etc.) » est-elle gratuite ?
Oui — le texte complet de « Méthodes magiques (__str__, __repr__, etc.) » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Python Academy, passe à CoddyKit PRO. Le cours Python Academy comprend 6 leçons au total.
Qu'est-ce que j'apprendrai dans « Méthodes magiques (__str__, __repr__, etc.) » ?
Plongez dans les méthodes spéciales de Python pour personnaliser le comportement des objets. Tu pratiques Python Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer Python Academy ?
Aucune expérience préalable n'est requise. Python Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 6 sur 6.
Combien de temps prend la leçon « Méthodes magiques (__str__, __repr__, etc.) » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon Python Academy ?
Oui. Chaque leçon Python Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Classes et objets
- Attributs et méthodes
- Héritage
- Polymorphisme
- Encapsulation et abstraction
- Méthodes magiques (__str__, __repr__, etc.)