为什么求取最大公约数的函数不能写在类中呢?
class Rational(object): def __init__(self, p, q): self.p = p self.q = q def __add__(self, r): return Rational(self.p * r.q + self.q * r.p, self.q * r.q) def __sub__(self, r): return Rational(self.p*r.q-self.q*r.p,self.q*r.q) def __mul__(self, r): return Rational(self.p*r.p,self.q*r.q) def __div__(self, r): return Rational(self.p*r.q,self.q*r.p) def gcd(p,q): a = p b = q if a < b: t = a a = b b = t t = a%b while t!=0: a = b b = t t = a%b return b g = gcd(self.p,self.q) def __str__(self): return '%s/%s'%(self.p/g,self.q/g) __repr__ = __str__ r1 = Rational(1, 2) r2 = Rational(1, 4) print r1 + r2 print r1 - r2
显示一直是'self' is not defined