C.10. Fraction class python

   1: class Fraccion:
   2:     def __init__(self, numerador, denominador=1):
   3:     m = mcd (numerador, denominador)
   4:     self.numerador = numerador / m
   5:     self.denominador = denominador / m
   6:     def __mul__(self, otro):
   7:     
   8:         if type(otro) == type(5):
   9:         otro = Fraccion(otro)
  10:         return Fraccion(self.numerador * otro.numerador,
  11:    
  12:  
  13:      self.denominador * otro.denominador)
  14:     __rmul__ = __mul__
  15:     def __add__(self, otro):
  16:     
  17:     if type(otro) == type(5):
  18:         otro = Fraccion(otro)
  19:         return Fraccion(self.numerador * otro.denominador +
  20:     
  21:     self.denominador * otro.numerador,
  22:     self.denominador * otro.denominador)
  23:     __radd__ = __add__
  24:     def __cmp__(self, otro):
  25:     if type(otro) == type(5):
  26:         otro = Fraccion(otro)
  27:         dif = (self.numerador * otro.denominador -
  28:         otro.numerador * self.denominador)
  29:         return dif
  30:  
  31:     def __repr__(self):
  32:     return self.__str__()
  33:     def __str__(self):
  34:     return "%d/%d" % (self.numerador, self.denominador)
  35:  
  36:     def mcd(m,n):
  37:         "devuelve el maximo comun denominador de dos enteros"
  38:     if m % n == 0:
  39:         return n
  40:     else:
  41:     return mcd(n,m%n)
0