저는 현재 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)
같은 일을 할 때 다른 모든 관계 연산자에서도 발생합니다. 누군가가이 특정 문제에 대해 나를 깨달을 수 있습니까? 어떻게 접근하거나 수정합니까?
감사!
이 줄 :
Rational(self.num, self.denom) < Rational(right.num, right.denom)
… __lt__
메서드를 다시 호출하여 무한 재귀로 이어집니다. Python 3.x (또는 from __future__ import division
미리 실행 된 Python 2.x)를 사용하고 있다고 가정하고 다른 접근 방식을 시도해보십시오 .
self.num/self.denom < right.num/right.denom
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다