Python执行时的递归深度问题
在Python执行递归函数时,会报如下错误:
1 |
Python RuntimeError: maximum recursion depth exceeded in cmp |
导致此问题的原因是为了防止堆栈溢出,Python中对于递归的深度有限制,默认为1000,程序执行到900多的样子,就会引发异常。查询递归深度方法:
1 2 |
import sys print sys.getrecursionlimit() |
如果递归深度不是非常的深,可以尝试手动设置递归深度限制,具体如下:
1 2 |
import sys sys.setrecursionlimit(2000) |
注意,设置递归深度太深非常容易导致栈溢出,建议采用while…do…语句进行替换。
打赏作者
微信支付

支付宝

码字很辛苦,转载请注明来自标点符的《Python执行时的递归深度问题》
可以使用 尾调用 方案来优化