Heim  >  Artikel  >  Backend-Entwicklung  >  Wie oft kann eine Rekursion in Python erreicht werden?

Wie oft kann eine Rekursion in Python erreicht werden?

高洛峰
高洛峰Original
2016-10-20 09:39:401560Durchsuche

Wie oft kann eine Rekursion in Python erreicht werden? Denn wenn das Programm ausgeführt wird, ist die Häufigkeit mal mehr, mal weniger. Über dieses Problem habe ich noch nie nachgedacht. Dann überprüfen Sie es selbst. Der Code lautet wie folgt:

def recursion(n):
    if(n <= 0):
        return
    print n
    recursion(n - 1)
  
if __name__ == "__main__":
    recursion(1000)

Wenn ich den obigen Code auf meinem eigenen Computer ausführe, stelle ich fest, dass er bis zu 998 drucken kann, und dann wird „ „RuntimeError: Maximale Rekursionstiefe überschritten“-Fehler. Hey, es gibt Grenzen. Aber dann dachte ich darüber nach, Python wäre nicht so schwach. Nach einigem Suchen habe ich herausgefunden, dass dies ein von Python speziell eingerichteter Mechanismus ist, um zu verhindern, dass eine unendliche Rekursion zu einem Überlauf und Absturz von Python führt. Die maximale Anzahl von Rekursionen kann neu angepasst werden. (http://docs.python.org/2/library/sys.html#sys.setrecursionlimit), ändern Sie den Code wie folgt:

import sys
sys.setrecursionlimit(1500)  # set the maximum depth as 1500
  
def recursion(n):
    if(n <= 0):
        return
    print n
    recursion(n - 1)
  
if __name__ == "__main__":
    recursion(1200)


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn