我尝试使用python中的类实现分数,但是当我运行它时, 它显示错误“未定义功能gcd”。我似乎不知道怎么办。
但是,当我在课外定义GCD时,它工作得很好。
class frac:
def gcd(a, b):
if(b == 0):
return a
else:
return gcd(b, a%b)
def __init__(self, numer, denom):
if(denom == 0):
raise Exception("WTF")
else:
self.numer = numer
self.denom = denom
self.ratify()
def ratify(self):
g = gcd(self.numer, self.denom)
self.numer = self.numer/g
self.denom = self.denom/g
def add(self, b):
n,d = self.numer, self.denom
self.numer = n*b.denom + d*b.numer
self.denom = d*b.denom
self.ratify()
出了什么问题?
答案 0 :(得分:1)
您的gcd
方法应类似于:
def gcd(self, a, b):
if(b == 0):
return a
else:
return self.gcd(b, a%b)