以下是代码。 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())
答案 0 :(得分:1)
您没有在else
案例中返回任何内容,因此您获得None
的返回类型。更改递归调用:
_gcd(y, x%y)
到
return self._gcd(y, x%y)