【Python问题解决】---- RecursionError: maximum recursion depth exceeded while calling a Python object
Python 解决 ---- object while maximum exceeded depth
2023-09-14 09:15:07 时间
1. 报错
RecursionError: maximum recursion depth exceeded while calling a Python object
2. 报错截图
3. 报错场景
使用分治算法解决【找数组的最大值和最小值】问题,使用递归导致的报错!
4. 错误原因
Python 默认递归调用深度为1000(即最多递归调用1000次),而程序在运行过程中超过最大的递归深度。
5. 为什么最大递归深度要有限制呢?
本质上讲,在计算机中,函数调用是通过栈(stack)这种数据结构实现的,每当进入一个函数调用,栈就会加一层栈帧,每当函数返回,栈就会减一层栈帧。由于栈的大小不是无限的,所以,递归调用的次数过多,会导致栈溢出。
在递归调用中,每个函数在调用自己的时候 还没有退出,调用多了肯定会导致内存崩溃,因此需要对递归深度进行限制。
6. 解决方案一
检查递归代码中是否有结束条件,避免死循环,以及递归结束条件是否合理。一般合理的代码是不会超过默认深度的。
7. 解决方案二
将默认的递归深度修改为3000
import sys
sys.setrecursionlimit(1000)
8. 总结
- 建议使用方案一!
- 方案二可能导致:【StackOverflow(栈区溢出),迫使程序意外终止。】
WXRUI体验二维码
下载
相关文章
- python json.loads()、json.dumps()和json.dump()、json.load()区别
- Python ---- 算法入门(1)贪心算法解决部分背包问题
- 【Python问题解决】---- RecursionError: maximum recursion depth exceeded while calling a Python object
- python数组拼接字符串_Python练习题——数组拼接
- 简述python变量的命名规则_Python 变量命名规则
- python爬虫—–Python访问http的几种方式「建议收藏」
- python 爬虫 通过搜索引擎搜索好看的图片进行多线程高效率爬取(解决href关联问题)
- Python OSError: [Errno 22] Invalid argument:的出现和解决「建议收藏」
- python海龟绘图画圆_Python启蒙之海龟作图「建议收藏」
- Python元组_python元组的定义方式
- python基础知识入门_python新手学院
- XGBOOST + LR 模型融合 python 代码
- 【说站】python中%格式表达式如何使用
- 【说站】python如何访问字典
- 【说站】python如何解决黏包问题
- 遗传算法的应用实例python实现_遗传算法Python解决一个问题
- python画等边三角形_四边形的画法
- python做微信回复机器人_Python自动化脚本
- 最佳的图像处理工具python扩展库
- 学python:使用python的pyRanges模块中的read_gtf函数读取gtf文件报错的解决办法
- 软件测试|什么是Python函数及名称空间?
- 【错误记录】Mac 中 Python 报错 ( ERROR: Could not build wheels for numpy which use PEP 517 | 问题未解决 | 问题记录 )
- Python 与 redis 交互取出数据类型是 bytes 时,如何直接取出 str 数据类型
- centos 6.x 设置默认的 python 2.6 为 python 2.7详解程序员
- python 转换数字为钱数详解编程语言
- pythonMySQL vs Python: Who Wins the Battle?(mysqlpk)
- python中的pymongo连接脚本详解编程语言
- Python爬取MySQL数据,助力数据分析(python读取mysql数据)
- python实现排序算法
- Python使用urllib模块的urlopen超时问题解决方法
- python进阶教程之异常处理