python递归深度报错--RuntimeError: maximum recursion depth exceeded
2018-03-10 18:35
567 查看
代码上传至https://github.com/gatieme/AderXCoding/blob/master/python/error/depth-exceeded.py
通过pdb调试发现是:
于是我们写了下面的代码进行测试,
在代码中函数func递归的调用自己,并且不退出
于是程序显然陷入一个死循环一样的递归
程序运行的结果
我们可以捕获到开始异常的位置
我们可以看到当递归深度超过999达到1000的时候,引发了这个异常
解决的方式是手工设置递归调用深度,方式为
但是这个问题治标不治本,最好的办法还是优化自己的代码。。。。
问题
这段时间用Python写了一个爬虫脚本,在抓取页面采用广度优先遍历抓取。但是当遍历到1000左右时就会出现莫名其妙的错误,通过pdb调试发现是:
RuntimeError: maximum recursion depth exceeded
解析
发现python默认的递归深度是很有限的(默认是1000),因此当递归深度超过999的样子,就会引发这样的一个异常。于是我们写了下面的代码进行测试,
在代码中函数func递归的调用自己,并且不退出
于是程序显然陷入一个死循环一样的递归
#!/usr/bin/env python #coding=utf-8 import sys def func(depth): depth += 1 print "Now the depth is %d" % depth func(depth) if __name__ == "__main__" : func(0)
程序运行的结果
我们可以捕获到开始异常的位置
我们可以看到当递归深度超过999达到1000的时候,引发了这个异常
解决的方式是手工设置递归调用深度,方式为
解决
可以修改递归深度的值,让它变大大一点import sys sys.setrecursionlimit(1000000) #例如这里设置为一百万
但是这个问题治标不治本,最好的办法还是优化自己的代码。。。。
相关文章推荐
- python递归深度报错: RuntimeError: maximum recursion depth exceeded
- Python RuntimeError: maximum recursion depth exceeded in cmp 超过最大递归深度错误
- python递归深度报错--RuntimeError: maximum recursion depth exceeded
- python递归深度报错--RuntimeError: maximum recursion depth exceeded
- python 最大递归次数 RuntimeError: maximum recursion depth exceeded
- python递归报错 RuntimeError: maximum recursion depth exceeded
- [Python] RuntimeError: maximum recursion depth exceeded|MemoryError: stack overflow 递归|堆栈限制
- Python的最大递归深度错误 “maximum recursion depth exceeded while calling a Python object”
- RuntimeError: maximum recursion depth exceeded 递归深度报错
- RuntimeError: maximum recursion depth exceeded 递归深度报错
- 启动django项目报错:RuntimeError: maximum recursion depth exceeded while calling a Python object
- python RuntimeError: maximum recursion depth exceeded
- 当python超出默认递归次数RecursionError: maximum recursion depth exceeded in comparison
- python使用pip安装一个module时报错:RuntimeError: maximum recursion depth exceeded
- python setup.py install 出现了 RuntimeError: maximum recursion depth exceeded in cmp
- 安装Django启动时报错:RuntimeError: maximum recursion depth exceeded
- Odoo8查询产品时提示"maximum recursion depth exceeded while calling a Python object"
- python maximum recursion depth exceeded解决方式
- Django RuntimeError: maximum recursion depth exceeded
- Odoo8查询产品时提示"maximum recursion depth exceeded while calling a Python object"