Pythonでは再帰は何回まで到達できますか?プログラムを実行すると、回数が多くなったり少なくなったりするため、これまでこの問題について考えたことはありませんでした。コードは次のとおりです。
def recursion(n): if(n <= 0): return print n recursion(n - 1) if __name__ == "__main__": recursion(1000)
上記のコードを自分のマシンで実行すると、最大 998 まで出力できることがわかり、その後、「RuntimeError: 最大再帰深度を超えました」エラーが発生します。投げられた。 ねえ、限界があります。でもよく考えたら、Python はそんなに弱くないはずだ。調べてみると、これは無限再帰によって Python がオーバーフローしてクラッシュするのを防ぐために Python によって特別に設定されたメカニズムであることがわかりました。再帰の最大数は再調整できます。 (http://docs.python.org/2/library/sys.html#sys.setrecursionlimit)、コードを次のように変更します:
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)