Python 超过最大递归次数(RecursionError: maximum recursion depth exceeded while calling a Python object)

python最大递归次数

在用递归实现一个最短路径算法的时候遇到报错:

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崩溃了,所以别设置得太大。

还有一个点也记录一下:

python列表最大长度

32位python的限制是 536870912 个元素。
64位python的限制是 1152921504606846975 个元素。

你可能感兴趣的:(python)