Exercices POO La méthode __repr__
🎉

Bravo!

Intermédiaire 🧠 Fondamentaux 20 XP 0 personnes ont réussi

La méthode __repr__

Python a deux méthodes pour convertir un objet en chaine : __str__ et __repr__. La difference :

- __str__ est pour l'affichage humain (utilisee par print())
- __repr__ est pour la représentation technique (utilisee dans le shell et dans les listes)

Une bonne __repr__ devrait idealement permettre de recréer l'objet. Par convention, elle ressemble a un appel au constructeur :

class Point:
def __init__(self, x, y):
self.x = x
self.y = y

def __repr__(self):
return f'Point({self.x}, {self.y})'

p = Point(3, 4)
repr(p) renvoie 'Point(3, 4)'

Si tu mets des Points dans une liste et que tu la printes, Python utilise __repr__ pour chaque élément.

Crée une classe Couleur avec trois attributs r, g, b (rouge, vert, bleu, entre 0 et 255). Definis __repr__ pour renvoyer 'Couleur(r=X, g=Y, b=Z)' et __str__ pour renvoyer 'rgb(X, Y, Z)'.

Exemple :
c = Couleur(255, 128, 0)
repr(c) renvoie 'Couleur(r=255, g=128, b=0)'
str(c) renvoie 'rgb(255, 128, 0)'

Tests (3/4)

repr
c = Couleur(255, 128, 0)
assert repr(c) == 'Couleur(r=255, g=128, b=0)'
str
c = Couleur(255, 128, 0)
assert str(c) == 'rgb(255, 128, 0)'
repr noir
c = Couleur(0, 0, 0)
assert repr(c) == 'Couleur(r=0, g=0, b=0)'

+ 0 tests cachés

Indices (3 disponibles)

solution.py