Redéfinition d'un opérateur

Le langage Python permet de redéfinir certains opérateurs du langage et notamment les opérateurs arithmétiques. Dans l'exemple ci-dessous, c'est l'opérateur + qui est redéfini : pour ce faire il a fallu ajouter la méthode __add__.

Exemple de code

#!/usr/bin/python3
                                
class Rational:

    def __init__( self, numerator=0, denominator=1 ):
        if denominator == 0:
            raise BaseException( "Denonimator cannot be null" );
        
        self.__numerator = numerator
        self.__denominator = denominator
        
    def __add__( self, other ):
        newNum = self.__numerator * other.__denominator + self.__denominator * other.__numerator
        newDen = self.__denominator * other.__denominator
        return Rational( newNum, newDen )

    def __str__(self):
        return "[%d/%d]" % (self.__numerator, self.__denominator)



r1 = Rational( 2, 3 )
r2 = Rational( 1, 2 )
print( r1 + r2 )

Pour lancer cet exemple, veuillez procéder ainsi :

$> python3 Rational.py 
[7/6]
$>