【发布时间】:2014-02-04 02:36:48
【问题描述】:
我目前是 Python 新手,不知道为什么会出现错误:
a<r raised exception RuntimeError: maximum recursion depth exceeded while calling a Python object
当我这样做时:
a = Rational(1,3)
r = Rational(0,5)
print(a<r)
我当前的代码是:
class Rational:
def _gcd(x,y):
while y != 0:
x, y = y, x % y
return x
def __init__(self, num = 0, denom = 1):
gcd = Rational._gcd(num, denom)
self.num = int(num / gcd)
self.denom = int(denom / gcd)
def __lt__(self, right):
return Rational(self.num, self.denom) < Rational(right.num, right.denom)
当我做同样的事情时,所有其他关系运算符也会发生这种情况。 有人可以在这个特定问题上启发我吗?我该如何处理或解决此问题?
谢谢!
【问题讨论】:
-
因为您应该比较比率。顺便说一句,请查看
fractions.Fractionclass
标签: python class recursion operator-keyword