为什么输出没有返回类型

时间:2017-10-04 20:13:27

标签: python

以下是代码。 main()测试假设返回最大公约数但它返回None类型。不理解gcd中的回复调用问题

class Fraction:
    def __init__(self, x, y):
        self._x = x
        self._y = y

    def gcd(self):
        p = self._gcd(self._x, self._y)
        return p

    def _gcd(self, x, y):
        if (x % y == 0):
            return y
        else:
             _gcd(y, x%y)


def main():
    f = Fraction(6,4)
    return f.gcd()
if __name__ == '__main__':
    print (main()) 

1 个答案:

答案 0 :(得分:1)

您没有在else案例中返回任何内容,因此您获得None的返回类型。更改递归调用:

_gcd(y, x%y)

return self._gcd(y, x%y)