在python中实现分数

时间:2019-04-18 12:49:33

标签: python

我尝试使用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()

出了什么问题?

1 个答案:

答案 0 :(得分:1)

您的gcd方法应类似于:

    def gcd(self, a, b):
        if(b == 0):
            return a
         else:
            return self.gcd(b, a%b)