을 탈출 할 (또는 무시) :재귀와 나는 다음과 같은 한주기
def rfunction(x, y):
new_x = assignment1
new_y = assignment2
print "x depends on new_x of form y"
rfunction(new_x, new_y)
내 실제 코드는 훨씬 더 복잡하다 등 여러 jsons에 의존하지만,이 문제의 요점이다 . 이것을 실행하면 다음 결과를 얻을 때까지 유쾌한 결과를 얻을 수 있습니다 : x depends on x of label y
, 물론 무한 루프가 발생합니다. 이 인쇄물을 한 번 인쇄 한 다음 재귀를 중단 (또는 무시)하고 계속 진행하려면 어떻게합니까? 재귀의 구조는 호가 자식을 향해 아래쪽으로 만 흐르는 종속성 그래프이지만 노드에는 루프가있을 수 있습니다. 저를 던지고있는 루프의 존재입니다.
def rfunction(x, y):
new_x = assignment1
new_y = assignment2
print "x depends on new_x of form y"
if new_x != x or new_y != y:
rfunction(new_x, new_y)
else:
do_something_else() # or maybe just return?
을 당신이 더 많은 간접 사이클에 대해 우려해야하는 경우 발생할 수있는 유일한 사이클 경우
는
조건이 충족되면 '돌아 가기'만 하시겠습니까? –
당신은 무한 루프를 가질 수 없습니다. 파이썬은 재귀 깊이를 제한하기 때문에 게시 된 코드는'RuntimeError : maximum recursion depth exceeded' 예외를 발생시킬 것입니다. –
그래서'x == new_x : return rfunction (new_x, new_y)'와 같은 것? – boldbrandywine