在用递归实现一个最短路径算法的时候遇到报错:
RecursionError: maximum recursion depth exceeded while calling a Python object
查了一下发现是因为Python有递归次数限制,默认最大次数为1000。
这是python设置的一种机制用来防止无限递归造成Python溢出崩溃, 最大递归次数是可以重新调整的。
调整方式如下:
import sys
sys.setrecursionlimit(2000) # set the maximum depth as 2000
我设成10000然后堆栈溢出python崩溃了,所以别设置得太大。
还有一个点也记录一下:
32位python的限制是 536870912 个元素。
64位python的限制是 1152921504606846975 个元素。