파이썬 최대 재귀 깊이를 테스트하는 동안 왜 RuntimeError를 여러 번 치나요?

패트릭

다음 코드를 사용하여 Python의 최대 재귀 깊이를 실험적으로 결정하려고했습니다.

def recursive(i):
    i = i + 1
    try:
        recursive(i)
    except RuntimeError:
        print 'max depth == %d' % i
        exit(0)

recursive(0)

하지만 실행했을 때 이런 일이 발생했습니다.

[ hive ~ ]$ python recursive.py 
max depth == 999
max depth == 998
max depth == 997
max depth == 996
max depth == 995
max depth == 994

내 프로그램 RuntimeError이 처음 만났을 때 바로 종료되지 않고 5 번 더 호출을 계속 실행하는 이유는 무엇 recursive()입니까?

Martijn Pieters

대화 형 인터프리터에서 사용하기 위해 exit()Python site모듈이 설정함수 를 사용하고 있습니다.

이것은 C 코드가 아니라 호출중인 Python 코드입니다. 이렇게하면 스택 제한에서 충분히 멀어 질 때까지 재귀 깊이 예외 처리기가 몇 번 더 트리거됩니다.

한계에 exit()도달하면 스택 한계에 도달했기 때문에 호출 시도가 실패합니다. 따라서 a RuntimeError가 발생하여 998. 여기에서 exit()다시 호출을 시도합니다. 다시 호출 을 시도하고 , 파이썬 함수 RuntimeError를 마지막으로 호출하기에 충분한 스택 공간이 남을 때까지 다시 올리거나 , 다른 레벨로 떨어지는 등 의 작업을 더 시도 raise SystemExit()합니다.

sys.exit()스택에 더 많은 부담을주지 않으려면 대신 사용하십시오 .

또는 나중에 참조 할 수 있도록 sys.getrecursionlimit()함수사용 하여 제한이 무엇인지 직접 Python에 물어보십시오.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

"read"메소드로 파이썬 객체를 호출하는 동안이 "RuntimeError"를 어떻게 해결합니까? : << 최대 재귀 깊이 초과 >>

분류에서Dev

파이썬 객체를 호출하는 동안 초과 된 최대 재귀 깊이를 해결하는 방법

분류에서Dev

RuntimeError : DB에서 다각형 포인트를 가져 오는 동안 Python 객체를 호출하는 동안 최대 재귀 깊이를 초과했습니다.

분류에서Dev

아름다운 수프와 파이썬. "파이썬 객체를 호출하는 동안 최대 재귀 깊이가 초과되었습니다"오류가 발생하여 재귀가있는 모든 노드를 가져올 수 없습니다.

분류에서Dev

RuntimeError : 기본 해시 방법을 사용하여 최대 재귀 깊이를 초과했습니다.

분류에서Dev

RecursionError : 스레드를 사용하는 동안 최대 재귀 깊이를 초과했습니다.

분류에서Dev

PyQt5 : RecursionError : Python 객체를 호출하는 동안 최대 재귀 깊이를 초과했습니다.

분류에서Dev

RecursionError at : Python 객체를 호출하는 동안 최대 재귀 깊이를 초과했습니다.

분류에서Dev

Andrew의 곡선 : Python 객체를 호출하는 동안 최대 재귀 깊이를 초과했습니다.

분류에서Dev

Sqlalchemy를 사용하여 최대 재귀 깊이를 초과했습니다.

분류에서Dev

변수 인수를 사용하는 Python "비교에서 최대 재귀 깊이 초과". 그러나 목록에서는 잘 작동합니다.

분류에서Dev

예외 값 방지 : Django 신호에서 Python 객체를 호출하는 동안 최대 재귀 깊이 초과

분류에서Dev

예외 값 방지 : Django 신호에서 Python 객체를 호출하는 동안 최대 재귀 깊이 초과

분류에서Dev

파이썬 재귀 오류 : RecursionError는 : 파이썬 객체를 호출하는 동안 최대 재귀 수준 초과

분류에서Dev

BeautifulSoup : RuntimeError : 최대 재귀 깊이 초과

분류에서Dev

동일한 캔버스 컨텍스트를 여러 번 재사용하는 것이 나쁜가요?

분류에서Dev

메서드 이름을 인쇄 할 때 Python 개체를 호출하는 동안 최대 재귀 깊이를 초과했습니다.

분류에서Dev

파이썬의 최대 재귀 깊이

분류에서Dev

recursionerror : skopt를 사용한 tensorflow와 비교하여 최대 재귀 깊이가 초과되었습니다.

분류에서Dev

재귀를 사용하여 나무의 경로를 찾는 파이썬

분류에서Dev

동일한 파일을 여러 번 열고 읽는 파이썬 스크립트를 최적화하는 방법은 무엇입니까?

분류에서Dev

Python을 사용한 웹 스크랩 핑 : RuntimeError 최대 재귀 깊이 초과

분류에서Dev

pyglet.app.run ()이 on_resize ()를 반복적으로 전달하여 최대 재귀 깊이 오류가 발생하는 이유는 무엇입니까?

분류에서Dev

파이썬 재귀를 최적화하는 방법

분류에서Dev

Avoding 최대 재귀 깊이

분류에서Dev

Python 최대 재귀 깊이

분류에서Dev

Python 최대 재귀 깊이

분류에서Dev

Python 상속 문제 {RuntimeError} 최대 재귀 깊이 초과

분류에서Dev

Django : "RuntimeError : 최대 재귀 깊이 초과"get_queryset 함수

Related 관련 기사

  1. 1

    "read"메소드로 파이썬 객체를 호출하는 동안이 "RuntimeError"를 어떻게 해결합니까? : << 최대 재귀 깊이 초과 >>

  2. 2

    파이썬 객체를 호출하는 동안 초과 된 최대 재귀 깊이를 해결하는 방법

  3. 3

    RuntimeError : DB에서 다각형 포인트를 가져 오는 동안 Python 객체를 호출하는 동안 최대 재귀 깊이를 초과했습니다.

  4. 4

    아름다운 수프와 파이썬. "파이썬 객체를 호출하는 동안 최대 재귀 깊이가 초과되었습니다"오류가 발생하여 재귀가있는 모든 노드를 가져올 수 없습니다.

  5. 5

    RuntimeError : 기본 해시 방법을 사용하여 최대 재귀 깊이를 초과했습니다.

  6. 6

    RecursionError : 스레드를 사용하는 동안 최대 재귀 깊이를 초과했습니다.

  7. 7

    PyQt5 : RecursionError : Python 객체를 호출하는 동안 최대 재귀 깊이를 초과했습니다.

  8. 8

    RecursionError at : Python 객체를 호출하는 동안 최대 재귀 깊이를 초과했습니다.

  9. 9

    Andrew의 곡선 : Python 객체를 호출하는 동안 최대 재귀 깊이를 초과했습니다.

  10. 10

    Sqlalchemy를 사용하여 최대 재귀 깊이를 초과했습니다.

  11. 11

    변수 인수를 사용하는 Python "비교에서 최대 재귀 깊이 초과". 그러나 목록에서는 잘 작동합니다.

  12. 12

    예외 값 방지 : Django 신호에서 Python 객체를 호출하는 동안 최대 재귀 깊이 초과

  13. 13

    예외 값 방지 : Django 신호에서 Python 객체를 호출하는 동안 최대 재귀 깊이 초과

  14. 14

    파이썬 재귀 오류 : RecursionError는 : 파이썬 객체를 호출하는 동안 최대 재귀 수준 초과

  15. 15

    BeautifulSoup : RuntimeError : 최대 재귀 깊이 초과

  16. 16

    동일한 캔버스 컨텍스트를 여러 번 재사용하는 것이 나쁜가요?

  17. 17

    메서드 이름을 인쇄 할 때 Python 개체를 호출하는 동안 최대 재귀 깊이를 초과했습니다.

  18. 18

    파이썬의 최대 재귀 깊이

  19. 19

    recursionerror : skopt를 사용한 tensorflow와 비교하여 최대 재귀 깊이가 초과되었습니다.

  20. 20

    재귀를 사용하여 나무의 경로를 찾는 파이썬

  21. 21

    동일한 파일을 여러 번 열고 읽는 파이썬 스크립트를 최적화하는 방법은 무엇입니까?

  22. 22

    Python을 사용한 웹 스크랩 핑 : RuntimeError 최대 재귀 깊이 초과

  23. 23

    pyglet.app.run ()이 on_resize ()를 반복적으로 전달하여 최대 재귀 깊이 오류가 발생하는 이유는 무엇입니까?

  24. 24

    파이썬 재귀를 최적화하는 방법

  25. 25

    Avoding 최대 재귀 깊이

  26. 26

    Python 최대 재귀 깊이

  27. 27

    Python 최대 재귀 깊이

  28. 28

    Python 상속 문제 {RuntimeError} 최대 재귀 깊이 초과

  29. 29

    Django : "RuntimeError : 최대 재귀 깊이 초과"get_queryset 함수

뜨겁다태그

보관