不知道自己的代码还能不能简化?
class Rational(object):
def __init__(self, p, q):
self.p = p
self.q = q
def yuefen(self):
n = self.p if self.p<self.q else self.q
while n>1:
if self.p%n==0 and self.q%n==0:
self.p /=n
self.q /=n
n-=1
def __add__(self, r):
re = Rational(self.p * r.q + self.q * r.p, self.q * r.q)
re.yuefen()
return re
def __sub__(self, r):
re =Rational(self.p*r.q - self.q*r.p,self.q*r.q)
re.yuefen()
return re
def __mul__(self, r):
re=Rational(self.p*r.p,self.q*r.q)
re.yuefen()
return re
def __div__(self, r):
re=Rational(self.p*r.q,self.q*r.p)
re.yuefen()
return re
def __str__(self):
return '%s/%s'%(self.p,self.q)
__repr__ = __str__
r1 = Rational(1, 2)
r2 = Rational(1, 4)
print r1 + r2
print r1 - r2
print r1 * r2
print r1 / r2