Afficher un objet - surcharge de l'opérateur __repr__

MéthodeSurcharge de __repr__

Pour la classe Fraction, l'affichage de l'addition de deux objects est une référence à un objet :

Il est possible d'avoir un résultat plus lisible en surchargant la méthode __repr__ .

1
class Fraction:
2
    def __init__(self, p, q):
3
        self.numerateur = p
4
        self.denominateur = q
5
    def __add__(self, b):
6
        if isinstance(b,int):
7
            b = Fraction(b, 1)
8
        if isinstance(b,Fraction):
9
            return Fraction(self.numerateur * b.denominateur + 
10
                b.numerateur * self.denominateur, 
11
                self.denominateur * b.denominateur)
12
        raise(NotImplemented(type(b) + ' not implemented for add Fraction'))
13
    def __radd__(self, b):
14
        if isinstance(b,int):
15
             return Fraction(b, 1) + self
16
        else:
17
            raise(NotImplemented(type(self) + ' not implemented for add Fraction'))
18
    def __repr__(self):
19
        return str(self.numerateur) +  ' / ' + str(self.denominateur)

Le résultat est maintenant :