0
点赞
收藏
分享

微信扫一扫

浅述Python中递归深度问题


当使用递归函数时,可能会遇见maximum recursion depth exceeded while calling a Python object(翻译为调用Python对象时超过了最大递归深度)异常。那么本文就此问题进行简述和问题解决。


问题阐述

  1. 递归函数:在函数内部调用自身。
  2. 递归函数的两个阶段:

递推:一级一级的调用
回溯:遇到终止条件后,沿着递推往回把值一级一级的给返回

  1.   递归深度:进行一次递归所能调用的最大次数,
  2. python的默认最大递归深度为1000

import sys
print(sys.getrecursionlimit())

# 结果:
# 1000

简单地说就是为了防止出现一些内存上的问题(什么堆呀栈呀的)而默认制定出来的限制递归次数的名词

解决方法

可以通过设置(改变)最大递归深度来解决,但是没多大的意义,还是得要注重问题本身滴。

import sys
sys.setrecursionlimit(23333) #括号内填所需要的大小
print(sys.getrecursionlimit())





举报

相关推荐

0 条评论